<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Cheetah Software: RobotRunner Class Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../jquery.js"></script>
<script type="text/javascript" src="../../dynsections.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Cheetah Software
   &#160;<span id="projectnumber">1.0</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="../../index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="../../namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="../../annotated.html"><span>Classes</span></a></li>
      <li><a href="../../files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="../../search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="../../search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="../../annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="../../classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="../../inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="../../functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('d9/d42/class_robot_runner.html','../../');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="../../de/d8c/class_robot_runner-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">RobotRunner Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p><code>#include &lt;<a class="el" href="../../d3/d41/_robot_runner_8h_source.html">RobotRunner.h</a>&gt;</code></p>
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-0-trigger" src="../../closed.png" alt="+"/> Inheritance diagram for RobotRunner:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="../../d0/dae/class_robot_runner__inherit__graph.png" border="0" usemap="#_robot_runner_inherit__map" alt="Inheritance graph"/></div>
<map name="_robot_runner_inherit__map" id="_robot_runner_inherit__map">
</map>
</div>
<div id="dynsection-1" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-1-trigger" src="../../closed.png" alt="+"/> Collaboration diagram for RobotRunner:</div>
<div id="dynsection-1-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-1-content" class="dyncontent" style="display:none;">
<div class="center"><img src="../../d2/dd4/class_robot_runner__coll__graph.png" border="0" usemap="#_robot_runner_coll__map" alt="Collaboration graph"/></div>
<map name="_robot_runner_coll__map" id="_robot_runner_coll__map">
</map>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ab1279040e970e8919510d107ed450aab"><td class="memItemLeft" align="right" valign="top">EIGEN_MAKE_ALIGNED_OPERATOR_NEW&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d42/class_robot_runner.html#ab1279040e970e8919510d107ed450aab">RobotRunner</a> (<a class="el" href="../../d4/d6a/class_robot_controller.html">RobotController</a> *, <a class="el" href="../../d2/d31/class_periodic_task_manager.html">PeriodicTaskManager</a> *, float, std::string)</td></tr>
<tr class="separator:ab1279040e970e8919510d107ed450aab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:affa2cfda073a7b1742561154c3081ae5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d42/class_robot_runner.html#affa2cfda073a7b1742561154c3081ae5">init</a> () override</td></tr>
<tr class="separator:affa2cfda073a7b1742561154c3081ae5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00f9204f3367b9948a2053e66d92c844"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d42/class_robot_runner.html#a00f9204f3367b9948a2053e66d92c844">run</a> () override</td></tr>
<tr class="separator:a00f9204f3367b9948a2053e66d92c844"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa6343490aaae621d14e9dfb920284d58"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d42/class_robot_runner.html#aa6343490aaae621d14e9dfb920284d58">cleanup</a> () override</td></tr>
<tr class="separator:aa6343490aaae621d14e9dfb920284d58"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2690089988868e09ee5827788bded47a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d42/class_robot_runner.html#a2690089988868e09ee5827788bded47a">initializeStateEstimator</a> (bool cheaterMode=false)</td></tr>
<tr class="separator:a2690089988868e09ee5827788bded47a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a322d0c0ba72d0301a16e05540a2eae63"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d42/class_robot_runner.html#a322d0c0ba72d0301a16e05540a2eae63">~RobotRunner</a> ()</td></tr>
<tr class="separator:a322d0c0ba72d0301a16e05540a2eae63"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_class_periodic_task"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_periodic_task')"><img src="../../closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="../../de/d2f/class_periodic_task.html">PeriodicTask</a></td></tr>
<tr class="memitem:aadb0c519e5d15feae5e66cdecaeb54f6 inherit pub_methods_class_periodic_task"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/d2f/class_periodic_task.html#aadb0c519e5d15feae5e66cdecaeb54f6">PeriodicTask</a> (<a class="el" href="../../d2/d31/class_periodic_task_manager.html">PeriodicTaskManager</a> *taskManager, float period, std::string name)</td></tr>
<tr class="separator:aadb0c519e5d15feae5e66cdecaeb54f6 inherit pub_methods_class_periodic_task"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a23a65ac2dff9750a0f0d6416f2f32a6f inherit pub_methods_class_periodic_task"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/d2f/class_periodic_task.html#a23a65ac2dff9750a0f0d6416f2f32a6f">start</a> ()</td></tr>
<tr class="separator:a23a65ac2dff9750a0f0d6416f2f32a6f inherit pub_methods_class_periodic_task"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad24498c03bd938845244546d52dfa24b inherit pub_methods_class_periodic_task"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/d2f/class_periodic_task.html#ad24498c03bd938845244546d52dfa24b">stop</a> ()</td></tr>
<tr class="separator:ad24498c03bd938845244546d52dfa24b inherit pub_methods_class_periodic_task"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab9031986941baaf7183f4d24bc861110 inherit pub_methods_class_periodic_task"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/d2f/class_periodic_task.html#ab9031986941baaf7183f4d24bc861110">printStatus</a> ()</td></tr>
<tr class="separator:ab9031986941baaf7183f4d24bc861110 inherit pub_methods_class_periodic_task"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90827dff3d3383036747c5d2557693f8 inherit pub_methods_class_periodic_task"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/d2f/class_periodic_task.html#a90827dff3d3383036747c5d2557693f8">clearMax</a> ()</td></tr>
<tr class="separator:a90827dff3d3383036747c5d2557693f8 inherit pub_methods_class_periodic_task"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad6928f8428ae4944314011aee9fd4764 inherit pub_methods_class_periodic_task"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/d2f/class_periodic_task.html#ad6928f8428ae4944314011aee9fd4764">isSlow</a> ()</td></tr>
<tr class="separator:ad6928f8428ae4944314011aee9fd4764 inherit pub_methods_class_periodic_task"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add1474723c0d9c4e96327b7997ea176e inherit pub_methods_class_periodic_task"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/d2f/class_periodic_task.html#add1474723c0d9c4e96327b7997ea176e">~PeriodicTask</a> ()</td></tr>
<tr class="separator:add1474723c0d9c4e96327b7997ea176e inherit pub_methods_class_periodic_task"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a737939f2375ed06e4e7eaf10cdb25a61 inherit pub_methods_class_periodic_task"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/d2f/class_periodic_task.html#a737939f2375ed06e4e7eaf10cdb25a61">getPeriod</a> ()</td></tr>
<tr class="separator:a737939f2375ed06e4e7eaf10cdb25a61 inherit pub_methods_class_periodic_task"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a6c73bcf016d81e4de77ca8a20f7329 inherit pub_methods_class_periodic_task"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/d2f/class_periodic_task.html#a0a6c73bcf016d81e4de77ca8a20f7329">getRuntime</a> ()</td></tr>
<tr class="separator:a0a6c73bcf016d81e4de77ca8a20f7329 inherit pub_methods_class_periodic_task"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb803276382ca63ba019191c83ea3a86 inherit pub_methods_class_periodic_task"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/d2f/class_periodic_task.html#aeb803276382ca63ba019191c83ea3a86">getMaxPeriod</a> ()</td></tr>
<tr class="separator:aeb803276382ca63ba019191c83ea3a86 inherit pub_methods_class_periodic_task"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf7a674830010fe0dddf08683cc977dc inherit pub_methods_class_periodic_task"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/d2f/class_periodic_task.html#adf7a674830010fe0dddf08683cc977dc">getMaxRuntime</a> ()</td></tr>
<tr class="separator:adf7a674830010fe0dddf08683cc977dc inherit pub_methods_class_periodic_task"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:a22049e420073df0f4f7c0df114b5e917"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d4/d6a/class_robot_controller.html">RobotController</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d42/class_robot_runner.html#a22049e420073df0f4f7c0df114b5e917">_robot_ctrl</a></td></tr>
<tr class="separator:a22049e420073df0f4f7c0df114b5e917"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab68a04d6b506333426883633a6430656"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d4/d51/struct_gamepad_command.html">GamepadCommand</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d42/class_robot_runner.html#ab68a04d6b506333426883633a6430656">driverCommand</a></td></tr>
<tr class="separator:ab68a04d6b506333426883633a6430656"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac36f7f6395167f998afe23f6d4f86c82"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d9/d8e/cpp_types_8h.html#a78d284d08fd22d809fd436256f2cbc39">RobotType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d42/class_robot_runner.html#ac36f7f6395167f998afe23f6d4f86c82">robotType</a></td></tr>
<tr class="separator:ac36f7f6395167f998afe23f6d4f86c82"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a556fa8680fbd044ace2e0ac66db6c0ff"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../df/d06/struct_vector_nav_data.html">VectorNavData</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d42/class_robot_runner.html#a556fa8680fbd044ace2e0ac66db6c0ff">vectorNavData</a></td></tr>
<tr class="separator:a556fa8680fbd044ace2e0ac66db6c0ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0c0ed1f15b551e355dd724696830d9ce"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d2/d3e/struct_cheater_state.html">CheaterState</a>&lt; double &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d42/class_robot_runner.html#a0c0ed1f15b551e355dd724696830d9ce">cheaterState</a></td></tr>
<tr class="separator:a0c0ed1f15b551e355dd724696830d9ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a58767b23c3b78f2d6f7a5af7474d39cf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d5/d09/struct_spi_data.html">SpiData</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d42/class_robot_runner.html#a58767b23c3b78f2d6f7a5af7474d39cf">spiData</a></td></tr>
<tr class="separator:a58767b23c3b78f2d6f7a5af7474d39cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a13f4f83d3364befdad7a218f2c16afbb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d0/ddd/struct_spi_command.html">SpiCommand</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d42/class_robot_runner.html#a13f4f83d3364befdad7a218f2c16afbb">spiCommand</a></td></tr>
<tr class="separator:a13f4f83d3364befdad7a218f2c16afbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f2ce3493eb24f284097c191bd46878b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d8/d03/struct_ti_board_command.html">TiBoardCommand</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d42/class_robot_runner.html#a0f2ce3493eb24f284097c191bd46878b">tiBoardCommand</a></td></tr>
<tr class="separator:a0f2ce3493eb24f284097c191bd46878b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac50170ed61462e6b473a8b4123252b06"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../de/de1/struct_ti_board_data.html">TiBoardData</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d42/class_robot_runner.html#ac50170ed61462e6b473a8b4123252b06">tiBoardData</a></td></tr>
<tr class="separator:ac50170ed61462e6b473a8b4123252b06"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1738f8f82abdedc10c25e0360fba2dec"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d0/d73/class_robot_control_parameters.html">RobotControlParameters</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d42/class_robot_runner.html#a1738f8f82abdedc10c25e0360fba2dec">controlParameters</a></td></tr>
<tr class="separator:a1738f8f82abdedc10c25e0360fba2dec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c74848e52f20b1294d650641f40ea4f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d3/d60/struct_visualization_data.html">VisualizationData</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d42/class_robot_runner.html#a8c74848e52f20b1294d650641f40ea4f">visualizationData</a></td></tr>
<tr class="separator:a8c74848e52f20b1294d650641f40ea4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad49f79affbf6c35d4c8ac21a50cb8ae3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d0/d6d/struct_cheetah_visualization.html">CheetahVisualization</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d42/class_robot_runner.html#ad49f79affbf6c35d4c8ac21a50cb8ae3">cheetahMainVisualization</a></td></tr>
<tr class="separator:ad49f79affbf6c35d4c8ac21a50cb8ae3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr class="memitem:a350d9f78e20c990d39533024dce26759"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d42/class_robot_runner.html#a350d9f78e20c990d39533024dce26759">setupStep</a> ()</td></tr>
<tr class="separator:a350d9f78e20c990d39533024dce26759"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aca37fb89c947e01ce01a4853f0ebfb25"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d42/class_robot_runner.html#aca37fb89c947e01ce01a4853f0ebfb25">finalizeStep</a> ()</td></tr>
<tr class="separator:aca37fb89c947e01ce01a4853f0ebfb25"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:a9c110d02e7a2d84105d559bdcbfbbe77"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d42/class_robot_runner.html#a9c110d02e7a2d84105d559bdcbfbbe77">_ini_yaw</a></td></tr>
<tr class="separator:a9c110d02e7a2d84105d559bdcbfbbe77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2afbec5f8ca8de22d917b7e3aea68a44"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d42/class_robot_runner.html#a2afbec5f8ca8de22d917b7e3aea68a44">iter</a> = 0</td></tr>
<tr class="separator:a2afbec5f8ca8de22d917b7e3aea68a44"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e661baf2a4409d910c56852309e2eba"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d6/d0e/class_j_pos_initializer.html">JPosInitializer</a>&lt; float &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d42/class_robot_runner.html#a5e661baf2a4409d910c56852309e2eba">_jpos_initializer</a></td></tr>
<tr class="separator:a5e661baf2a4409d910c56852309e2eba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3fca77b8800f422df7b4479c1a9de256"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../dc/d66/class_quadruped.html">Quadruped</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d42/class_robot_runner.html#a3fca77b8800f422df7b4479c1a9de256">_quadruped</a></td></tr>
<tr class="separator:a3fca77b8800f422df7b4479c1a9de256"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5df8c8d98558dbf844abfcdcb21e805a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d0/d96/class_leg_controller.html">LegController</a>&lt; float &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d42/class_robot_runner.html#a5df8c8d98558dbf844abfcdcb21e805a">_legController</a> = nullptr</td></tr>
<tr class="separator:a5df8c8d98558dbf844abfcdcb21e805a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2740567fb438904e017aa1a8f29b2f15"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../dd/df3/struct_state_estimate.html">StateEstimate</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d42/class_robot_runner.html#a2740567fb438904e017aa1a8f29b2f15">_stateEstimate</a></td></tr>
<tr class="separator:a2740567fb438904e017aa1a8f29b2f15"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4cfc6ffa3d96d78ea95633d602896a37"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d1/d3b/class_state_estimator_container.html">StateEstimatorContainer</a>&lt; float &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d42/class_robot_runner.html#a4cfc6ffa3d96d78ea95633d602896a37">_stateEstimator</a></td></tr>
<tr class="separator:a4cfc6ffa3d96d78ea95633d602896a37"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a110cef5dc9ec858247b859b37a86ae76"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d42/class_robot_runner.html#a110cef5dc9ec858247b859b37a86ae76">_cheaterModeEnabled</a> = false</td></tr>
<tr class="separator:a110cef5dc9ec858247b859b37a86ae76"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c821324ab0aa3242530fe440cef8238"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d0/d27/class_desired_state_command.html">DesiredStateCommand</a>&lt; float &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d42/class_robot_runner.html#a5c821324ab0aa3242530fe440cef8238">_desiredStateCommand</a></td></tr>
<tr class="separator:a5c821324ab0aa3242530fe440cef8238"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac30dc70ec5c716af67b9e5ad1116170f"><td class="memItemLeft" align="right" valign="top">lcm::LCM&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d42/class_robot_runner.html#ac30dc70ec5c716af67b9e5ad1116170f">_lcm</a></td></tr>
<tr class="separator:ac30dc70ec5c716af67b9e5ad1116170f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a675c3dc67c255fc4869bacd785f8e31c"><td class="memItemLeft" align="right" valign="top">leg_control_command_lcmt&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d42/class_robot_runner.html#a675c3dc67c255fc4869bacd785f8e31c">leg_control_command_lcm</a></td></tr>
<tr class="separator:a675c3dc67c255fc4869bacd785f8e31c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a02c2ec6b1bbcdba9bb71a52e1c7c1ff4"><td class="memItemLeft" align="right" valign="top">state_estimator_lcmt&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d42/class_robot_runner.html#a02c2ec6b1bbcdba9bb71a52e1c7c1ff4">state_estimator_lcm</a></td></tr>
<tr class="separator:a02c2ec6b1bbcdba9bb71a52e1c7c1ff4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1ced7e9e4a5690141839c1bf39e3b54a"><td class="memItemLeft" align="right" valign="top">leg_control_data_lcmt&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d42/class_robot_runner.html#a1ced7e9e4a5690141839c1bf39e3b54a">leg_control_data_lcm</a></td></tr>
<tr class="separator:a1ced7e9e4a5690141839c1bf39e3b54a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ce5b08a77c9093398f0863c13cced0e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d6/db1/class_floating_base_model.html">FloatingBaseModel</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d42/class_robot_runner.html#a0ce5b08a77c9093398f0863c13cced0e">_model</a></td></tr>
<tr class="separator:a0ce5b08a77c9093398f0863c13cced0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5a05775ffd71056024d5a60c3bfe354"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d0/d99/c_types_8h.html#a3f7e2bcbb0b4c338f3c4f6c937cd4234">u64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d42/class_robot_runner.html#aa5a05775ffd71056024d5a60c3bfe354">_iterations</a> = 0</td></tr>
<tr class="separator:aa5a05775ffd71056024d5a60c3bfe354"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
<p>Definition at line <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00030">30</a> of file <a class="el" href="../../d3/d41/_robot_runner_8h_source.html">RobotRunner.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="ab1279040e970e8919510d107ed450aab"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">RobotRunner::RobotRunner </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../d4/d6a/class_robot_controller.html">RobotController</a> *&#160;</td>
          <td class="paramname"><em>robot_ctrl</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../d2/d31/class_periodic_task_manager.html">PeriodicTaskManager</a> *&#160;</td>
          <td class="paramname"><em>manager</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>period</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::string&#160;</td>
          <td class="paramname"><em>name</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="../../db/d28/_robot_runner_8cpp_source.html#l00015">15</a> of file <a class="el" href="../../db/d28/_robot_runner_8cpp_source.html">RobotRunner.cpp</a>.</p>

<p>References <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00044">_robot_ctrl</a>.</p>
<div class="fragment"><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;                                                      :</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;                         <a class="code" href="../../de/d2f/class_periodic_task.html#aadb0c519e5d15feae5e66cdecaeb54f6">PeriodicTask</a>(manager, period, name),</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;                         <a class="code" href="../../d9/d42/class_robot_runner.html#ac30dc70ec5c716af67b9e5ad1116170f">_lcm</a>(<a class="code" href="../../de/df0/utilities_8h.html#aa3945f023f4c554ec5670ac03ff82525">getLcmUrl</a>(255)) {</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;    <a class="code" href="../../d9/d42/class_robot_runner.html#a22049e420073df0f4f7c0df114b5e917">_robot_ctrl</a> = robot_ctrl;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;}</div><div class="ttc" id="class_periodic_task_html_aadb0c519e5d15feae5e66cdecaeb54f6"><div class="ttname"><a href="../../de/d2f/class_periodic_task.html#aadb0c519e5d15feae5e66cdecaeb54f6">PeriodicTask::PeriodicTask</a></div><div class="ttdeci">PeriodicTask(PeriodicTaskManager *taskManager, float period, std::string name)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/df7/_periodic_task_8cpp_source.html#l00014">PeriodicTask.cpp:14</a></div></div>
<div class="ttc" id="utilities_8h_html_aa3945f023f4c554ec5670ac03ff82525"><div class="ttname"><a href="../../de/df0/utilities_8h.html#aa3945f023f4c554ec5670ac03ff82525">getLcmUrl</a></div><div class="ttdeci">std::string getLcmUrl(s64 ttl)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da5/utilities_8cpp_source.html#l00032">utilities.cpp:32</a></div></div>
<div class="ttc" id="class_robot_runner_html_ac30dc70ec5c716af67b9e5ad1116170f"><div class="ttname"><a href="../../d9/d42/class_robot_runner.html#ac30dc70ec5c716af67b9e5ad1116170f">RobotRunner::_lcm</a></div><div class="ttdeci">lcm::LCM _lcm</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d41/_robot_runner_8h_source.html#l00073">RobotRunner.h:73</a></div></div>
<div class="ttc" id="class_robot_runner_html_a22049e420073df0f4f7c0df114b5e917"><div class="ttname"><a href="../../d9/d42/class_robot_runner.html#a22049e420073df0f4f7c0df114b5e917">RobotRunner::_robot_ctrl</a></div><div class="ttdeci">RobotController * _robot_ctrl</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d41/_robot_runner_8h_source.html#l00044">RobotRunner.h:44</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a322d0c0ba72d0301a16e05540a2eae63"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">RobotRunner::~RobotRunner </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="../../db/d28/_robot_runner_8cpp_source.html#l00189">189</a> of file <a class="el" href="../../db/d28/_robot_runner_8cpp_source.html">RobotRunner.cpp</a>.</p>

<p>References <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00066">_jpos_initializer</a>, <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00068">_legController</a>, and <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00070">_stateEstimator</a>.</p>
<div class="fragment"><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;                          {</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;  <span class="keyword">delete</span> <a class="code" href="../../d9/d42/class_robot_runner.html#a5df8c8d98558dbf844abfcdcb21e805a">_legController</a>;</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;  <span class="keyword">delete</span> <a class="code" href="../../d9/d42/class_robot_runner.html#a4cfc6ffa3d96d78ea95633d602896a37">_stateEstimator</a>;</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;  <span class="keyword">delete</span> <a class="code" href="../../d9/d42/class_robot_runner.html#a5e661baf2a4409d910c56852309e2eba">_jpos_initializer</a>;</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;}</div><div class="ttc" id="class_robot_runner_html_a5df8c8d98558dbf844abfcdcb21e805a"><div class="ttname"><a href="../../d9/d42/class_robot_runner.html#a5df8c8d98558dbf844abfcdcb21e805a">RobotRunner::_legController</a></div><div class="ttdeci">LegController&lt; float &gt; * _legController</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d41/_robot_runner_8h_source.html#l00068">RobotRunner.h:68</a></div></div>
<div class="ttc" id="class_robot_runner_html_a5e661baf2a4409d910c56852309e2eba"><div class="ttname"><a href="../../d9/d42/class_robot_runner.html#a5e661baf2a4409d910c56852309e2eba">RobotRunner::_jpos_initializer</a></div><div class="ttdeci">JPosInitializer&lt; float &gt; * _jpos_initializer</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d41/_robot_runner_8h_source.html#l00066">RobotRunner.h:66</a></div></div>
<div class="ttc" id="class_robot_runner_html_a4cfc6ffa3d96d78ea95633d602896a37"><div class="ttname"><a href="../../d9/d42/class_robot_runner.html#a4cfc6ffa3d96d78ea95633d602896a37">RobotRunner::_stateEstimator</a></div><div class="ttdeci">StateEstimatorContainer&lt; float &gt; * _stateEstimator</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d41/_robot_runner_8h_source.html#l00070">RobotRunner.h:70</a></div></div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="aa6343490aaae621d14e9dfb920284d58"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void RobotRunner::cleanup </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Implements <a class="el" href="../../de/d2f/class_periodic_task.html#a5b4d756df249cf8adda268d509390ef4">PeriodicTask</a>.</p>

<p>Definition at line <a class="el" href="../../db/d28/_robot_runner_8cpp_source.html#l00195">195</a> of file <a class="el" href="../../db/d28/_robot_runner_8cpp_source.html">RobotRunner.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;{}</div></div><!-- fragment -->
</div>
</div>
<a class="anchor" id="aca37fb89c947e01ce01a4853f0ebfb25"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void RobotRunner::finalizeStep </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="../../db/d28/_robot_runner_8cpp_source.html#l00158">158</a> of file <a class="el" href="../../db/d28/_robot_runner_8cpp_source.html">RobotRunner.cpp</a>.</p>

<p>References <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00080">_iterations</a>, <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00073">_lcm</a>, <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00068">_legController</a>, <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00069">_stateEstimate</a>, <a class="el" href="../../d9/d8e/cpp_types_8h.html#a78d284d08fd22d809fd436256f2cbc39a6dd4d4322d59b92d9eaed24a8d3ecb45">CHEETAH_3</a>, <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00074">leg_control_command_lcm</a>, <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00076">leg_control_data_lcm</a>, <a class="el" href="../../d9/d8e/cpp_types_8h.html#a78d284d08fd22d809fd436256f2cbc39a590425b506eb87eff1a64ed14ffd1498">MINI_CHEETAH</a>, <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00047">robotType</a>, <a class="el" href="../../d8/d87/_state_estimator_container_8h_source.html#l00037">StateEstimate&lt; T &gt;::setLcm()</a>, <a class="el" href="../../da/d2d/_leg_controller_8cpp_source.html#l00202">LegController&lt; T &gt;::setLcm()</a>, <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00051">spiCommand</a>, <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00075">state_estimator_lcm</a>, <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00052">tiBoardCommand</a>, and <a class="el" href="../../da/d2d/_leg_controller_8cpp_source.html#l00126">LegController&lt; T &gt;::updateCommand()</a>.</p>
<div class="fragment"><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;                               {</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;  <span class="keywordflow">if</span> (<a class="code" href="../../d9/d42/class_robot_runner.html#ac36f7f6395167f998afe23f6d4f86c82">robotType</a> == <a class="code" href="../../d9/d8e/cpp_types_8h.html#a78d284d08fd22d809fd436256f2cbc39a590425b506eb87eff1a64ed14ffd1498">RobotType::MINI_CHEETAH</a>) {</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;    <a class="code" href="../../d9/d42/class_robot_runner.html#a5df8c8d98558dbf844abfcdcb21e805a">_legController</a>-&gt;<a class="code" href="../../d0/d96/class_leg_controller.html#aa6ed2e91e7d6eb3af84b26db593483b9">updateCommand</a>(<a class="code" href="../../d9/d42/class_robot_runner.html#a13f4f83d3364befdad7a218f2c16afbb">spiCommand</a>);</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="../../d9/d42/class_robot_runner.html#ac36f7f6395167f998afe23f6d4f86c82">robotType</a> == <a class="code" href="../../d9/d8e/cpp_types_8h.html#a78d284d08fd22d809fd436256f2cbc39a6dd4d4322d59b92d9eaed24a8d3ecb45">RobotType::CHEETAH_3</a>) {</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;    <a class="code" href="../../d9/d42/class_robot_runner.html#a5df8c8d98558dbf844abfcdcb21e805a">_legController</a>-&gt;<a class="code" href="../../d0/d96/class_leg_controller.html#aa6ed2e91e7d6eb3af84b26db593483b9">updateCommand</a>(<a class="code" href="../../d9/d42/class_robot_runner.html#a0f2ce3493eb24f284097c191bd46878b">tiBoardCommand</a>);</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;    assert(<span class="keyword">false</span>);</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;  }</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;  <a class="code" href="../../d9/d42/class_robot_runner.html#a5df8c8d98558dbf844abfcdcb21e805a">_legController</a>-&gt;<a class="code" href="../../d0/d96/class_leg_controller.html#a2a14b7e0cb62942e70b787179b16f900">setLcm</a>(&amp;<a class="code" href="../../d9/d42/class_robot_runner.html#a1ced7e9e4a5690141839c1bf39e3b54a">leg_control_data_lcm</a>, &amp;<a class="code" href="../../d9/d42/class_robot_runner.html#a675c3dc67c255fc4869bacd785f8e31c">leg_control_command_lcm</a>);</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;  <a class="code" href="../../d9/d42/class_robot_runner.html#a2740567fb438904e017aa1a8f29b2f15">_stateEstimate</a>.<a class="code" href="../../dd/df3/struct_state_estimate.html#af02cdbf09fcd47b041b96aaf34e5ac38">setLcm</a>(<a class="code" href="../../d9/d42/class_robot_runner.html#a02c2ec6b1bbcdba9bb71a52e1c7c1ff4">state_estimator_lcm</a>);</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;  <a class="code" href="../../d9/d42/class_robot_runner.html#ac30dc70ec5c716af67b9e5ad1116170f">_lcm</a>.publish(<span class="stringliteral">&quot;leg_control_command&quot;</span>, &amp;<a class="code" href="../../d9/d42/class_robot_runner.html#a675c3dc67c255fc4869bacd785f8e31c">leg_control_command_lcm</a>);</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;  <a class="code" href="../../d9/d42/class_robot_runner.html#ac30dc70ec5c716af67b9e5ad1116170f">_lcm</a>.publish(<span class="stringliteral">&quot;leg_control_data&quot;</span>, &amp;<a class="code" href="../../d9/d42/class_robot_runner.html#a1ced7e9e4a5690141839c1bf39e3b54a">leg_control_data_lcm</a>);</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;  <a class="code" href="../../d9/d42/class_robot_runner.html#ac30dc70ec5c716af67b9e5ad1116170f">_lcm</a>.publish(<span class="stringliteral">&quot;state_estimator&quot;</span>, &amp;<a class="code" href="../../d9/d42/class_robot_runner.html#a02c2ec6b1bbcdba9bb71a52e1c7c1ff4">state_estimator_lcm</a>);</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;  <a class="code" href="../../d9/d42/class_robot_runner.html#aa5a05775ffd71056024d5a60c3bfe354">_iterations</a>++;</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;}</div><div class="ttc" id="class_robot_runner_html_a13f4f83d3364befdad7a218f2c16afbb"><div class="ttname"><a href="../../d9/d42/class_robot_runner.html#a13f4f83d3364befdad7a218f2c16afbb">RobotRunner::spiCommand</a></div><div class="ttdeci">SpiCommand * spiCommand</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d41/_robot_runner_8h_source.html#l00051">RobotRunner.h:51</a></div></div>
<div class="ttc" id="cpp_types_8h_html_a78d284d08fd22d809fd436256f2cbc39a590425b506eb87eff1a64ed14ffd1498"><div class="ttname"><a href="../../d9/d8e/cpp_types_8h.html#a78d284d08fd22d809fd436256f2cbc39a590425b506eb87eff1a64ed14ffd1498">RobotType::MINI_CHEETAH</a></div></div>
<div class="ttc" id="class_robot_runner_html_a5df8c8d98558dbf844abfcdcb21e805a"><div class="ttname"><a href="../../d9/d42/class_robot_runner.html#a5df8c8d98558dbf844abfcdcb21e805a">RobotRunner::_legController</a></div><div class="ttdeci">LegController&lt; float &gt; * _legController</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d41/_robot_runner_8h_source.html#l00068">RobotRunner.h:68</a></div></div>
<div class="ttc" id="class_robot_runner_html_a1ced7e9e4a5690141839c1bf39e3b54a"><div class="ttname"><a href="../../d9/d42/class_robot_runner.html#a1ced7e9e4a5690141839c1bf39e3b54a">RobotRunner::leg_control_data_lcm</a></div><div class="ttdeci">leg_control_data_lcmt leg_control_data_lcm</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d41/_robot_runner_8h_source.html#l00076">RobotRunner.h:76</a></div></div>
<div class="ttc" id="class_leg_controller_html_a2a14b7e0cb62942e70b787179b16f900"><div class="ttname"><a href="../../d0/d96/class_leg_controller.html#a2a14b7e0cb62942e70b787179b16f900">LegController::setLcm</a></div><div class="ttdeci">void setLcm(leg_control_data_lcmt *data, leg_control_command_lcmt *command)</div><div class="ttdef"><b>Definition:</b> <a href="../../da/d2d/_leg_controller_8cpp_source.html#l00202">LegController.cpp:202</a></div></div>
<div class="ttc" id="class_robot_runner_html_a0f2ce3493eb24f284097c191bd46878b"><div class="ttname"><a href="../../d9/d42/class_robot_runner.html#a0f2ce3493eb24f284097c191bd46878b">RobotRunner::tiBoardCommand</a></div><div class="ttdeci">TiBoardCommand * tiBoardCommand</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d41/_robot_runner_8h_source.html#l00052">RobotRunner.h:52</a></div></div>
<div class="ttc" id="class_leg_controller_html_aa6ed2e91e7d6eb3af84b26db593483b9"><div class="ttname"><a href="../../d0/d96/class_leg_controller.html#aa6ed2e91e7d6eb3af84b26db593483b9">LegController::updateCommand</a></div><div class="ttdeci">void updateCommand(SpiCommand *spiCommand)</div><div class="ttdef"><b>Definition:</b> <a href="../../da/d2d/_leg_controller_8cpp_source.html#l00126">LegController.cpp:126</a></div></div>
<div class="ttc" id="class_robot_runner_html_a2740567fb438904e017aa1a8f29b2f15"><div class="ttname"><a href="../../d9/d42/class_robot_runner.html#a2740567fb438904e017aa1a8f29b2f15">RobotRunner::_stateEstimate</a></div><div class="ttdeci">StateEstimate&lt; float &gt; _stateEstimate</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d41/_robot_runner_8h_source.html#l00069">RobotRunner.h:69</a></div></div>
<div class="ttc" id="cpp_types_8h_html_a78d284d08fd22d809fd436256f2cbc39a6dd4d4322d59b92d9eaed24a8d3ecb45"><div class="ttname"><a href="../../d9/d8e/cpp_types_8h.html#a78d284d08fd22d809fd436256f2cbc39a6dd4d4322d59b92d9eaed24a8d3ecb45">RobotType::CHEETAH_3</a></div></div>
<div class="ttc" id="class_robot_runner_html_ac30dc70ec5c716af67b9e5ad1116170f"><div class="ttname"><a href="../../d9/d42/class_robot_runner.html#ac30dc70ec5c716af67b9e5ad1116170f">RobotRunner::_lcm</a></div><div class="ttdeci">lcm::LCM _lcm</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d41/_robot_runner_8h_source.html#l00073">RobotRunner.h:73</a></div></div>
<div class="ttc" id="class_robot_runner_html_a675c3dc67c255fc4869bacd785f8e31c"><div class="ttname"><a href="../../d9/d42/class_robot_runner.html#a675c3dc67c255fc4869bacd785f8e31c">RobotRunner::leg_control_command_lcm</a></div><div class="ttdeci">leg_control_command_lcmt leg_control_command_lcm</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d41/_robot_runner_8h_source.html#l00074">RobotRunner.h:74</a></div></div>
<div class="ttc" id="struct_state_estimate_html_af02cdbf09fcd47b041b96aaf34e5ac38"><div class="ttname"><a href="../../dd/df3/struct_state_estimate.html#af02cdbf09fcd47b041b96aaf34e5ac38">StateEstimate::setLcm</a></div><div class="ttdeci">void setLcm(state_estimator_lcmt &amp;lcm_data)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d87/_state_estimator_container_8h_source.html#l00037">StateEstimatorContainer.h:37</a></div></div>
<div class="ttc" id="class_robot_runner_html_aa5a05775ffd71056024d5a60c3bfe354"><div class="ttname"><a href="../../d9/d42/class_robot_runner.html#aa5a05775ffd71056024d5a60c3bfe354">RobotRunner::_iterations</a></div><div class="ttdeci">u64 _iterations</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d41/_robot_runner_8h_source.html#l00080">RobotRunner.h:80</a></div></div>
<div class="ttc" id="class_robot_runner_html_a02c2ec6b1bbcdba9bb71a52e1c7c1ff4"><div class="ttname"><a href="../../d9/d42/class_robot_runner.html#a02c2ec6b1bbcdba9bb71a52e1c7c1ff4">RobotRunner::state_estimator_lcm</a></div><div class="ttdeci">state_estimator_lcmt state_estimator_lcm</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d41/_robot_runner_8h_source.html#l00075">RobotRunner.h:75</a></div></div>
<div class="ttc" id="class_robot_runner_html_ac36f7f6395167f998afe23f6d4f86c82"><div class="ttname"><a href="../../d9/d42/class_robot_runner.html#ac36f7f6395167f998afe23f6d4f86c82">RobotRunner::robotType</a></div><div class="ttdeci">RobotType robotType</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d41/_robot_runner_8h_source.html#l00047">RobotRunner.h:47</a></div></div>
</div><!-- fragment -->
<p><div id="dynsection-2" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-2-trigger" src="../../closed.png" alt="+"/> Here is the call graph for this function:</div>
<div id="dynsection-2-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-2-content" class="dyncontent" style="display:none;">
<div class="center"><img src="../../d9/d42/class_robot_runner_aca37fb89c947e01ce01a4853f0ebfb25_cgraph.png" border="0" usemap="#d9/d42/class_robot_runner_aca37fb89c947e01ce01a4853f0ebfb25_cgraph" alt=""/></div>
<map name="d9/d42/class_robot_runner_aca37fb89c947e01ce01a4853f0ebfb25_cgraph" id="d9/d42/class_robot_runner_aca37fb89c947e01ce01a4853f0ebfb25_cgraph">
</map>
</div>
</p>

<p><div id="dynsection-3" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-3-trigger" src="../../closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-3-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-3-content" class="dyncontent" style="display:none;">
<div class="center"><img src="../../d9/d42/class_robot_runner_aca37fb89c947e01ce01a4853f0ebfb25_icgraph.png" border="0" usemap="#d9/d42/class_robot_runner_aca37fb89c947e01ce01a4853f0ebfb25_icgraph" alt=""/></div>
<map name="d9/d42/class_robot_runner_aca37fb89c947e01ce01a4853f0ebfb25_icgraph" id="d9/d42/class_robot_runner_aca37fb89c947e01ce01a4853f0ebfb25_icgraph">
</map>
</div>
</p>

</div>
</div>
<a class="anchor" id="affa2cfda073a7b1742561154c3081ae5"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void RobotRunner::init </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Initializes the robot model, state estimator, leg controller, robot data, and any control logic specific data. </p>

<p>Implements <a class="el" href="../../de/d2f/class_periodic_task.html#a8bc384b67a67e01b29afc0362732204d">PeriodicTask</a>.</p>

<p>Definition at line <a class="el" href="../../db/d28/_robot_runner_8cpp_source.html#l00028">28</a> of file <a class="el" href="../../db/d28/_robot_runner_8cpp_source.html">RobotRunner.cpp</a>.</p>

<p>References <a class="el" href="../../d3/dff/_robot_controller_8h_source.html#l00031">RobotController::_controlParameters</a>, <a class="el" href="../../d3/dff/_robot_controller_8h_source.html#l00030">RobotController::_driverCommand</a>, <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00066">_jpos_initializer</a>, <a class="el" href="../../d3/dff/_robot_controller_8h_source.html#l00027">RobotController::_legController</a>, <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00068">_legController</a>, <a class="el" href="../../d3/dff/_robot_controller_8h_source.html#l00026">RobotController::_model</a>, <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00079">_model</a>, <a class="el" href="../../d3/dff/_robot_controller_8h_source.html#l00025">RobotController::_quadruped</a>, <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00067">_quadruped</a>, <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00044">_robot_ctrl</a>, <a class="el" href="../../d3/dff/_robot_controller_8h_source.html#l00034">RobotController::_robotType</a>, <a class="el" href="../../d3/dff/_robot_controller_8h_source.html#l00029">RobotController::_stateEstimate</a>, <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00069">_stateEstimate</a>, <a class="el" href="../../d3/dff/_robot_controller_8h_source.html#l00028">RobotController::_stateEstimator</a>, <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00070">_stateEstimator</a>, <a class="el" href="../../d3/dff/_robot_controller_8h_source.html#l00033">RobotController::_visualizationData</a>, <a class="el" href="../../da/dfc/_quadruped_8cpp_source.html#l00113">Quadruped&lt; T &gt;::buildModel()</a>, <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00049">cheaterState</a>, <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00054">controlParameters</a>, <a class="el" href="../../d0/d41/_leg_controller_8h_source.html#l00070">LegController&lt; T &gt;::datas</a>, <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00046">driverCommand</a>, <a class="el" href="../../d4/d6a/class_robot_controller.html#a4eef800145cb801ea6296630119b4a65">RobotController::initializeController()</a>, <a class="el" href="../../db/d28/_robot_runner_8cpp_source.html#l00174">initializeStateEstimator()</a>, <a class="el" href="../../d9/d8e/cpp_types_8h.html#a78d284d08fd22d809fd436256f2cbc39a590425b506eb87eff1a64ed14ffd1498">MINI_CHEETAH</a>, <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00047">robotType</a>, <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00048">vectorNavData</a>, and <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00055">visualizationData</a>.</p>
<div class="fragment"><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;                       {</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;  printf(<span class="stringliteral">&quot;[RobotRunner] initialize\n&quot;</span>);</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;  <span class="comment">// Build the appropriate Quadruped object</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;  <span class="keywordflow">if</span> (<a class="code" href="../../d9/d42/class_robot_runner.html#ac36f7f6395167f998afe23f6d4f86c82">robotType</a> == <a class="code" href="../../d9/d8e/cpp_types_8h.html#a78d284d08fd22d809fd436256f2cbc39a590425b506eb87eff1a64ed14ffd1498">RobotType::MINI_CHEETAH</a>) {</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    <a class="code" href="../../d9/d42/class_robot_runner.html#a3fca77b8800f422df7b4479c1a9de256">_quadruped</a> = buildMiniCheetah&lt;float&gt;();</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    <a class="code" href="../../d9/d42/class_robot_runner.html#a3fca77b8800f422df7b4479c1a9de256">_quadruped</a> = buildCheetah3&lt;float&gt;();</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;  }</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;  <span class="comment">// Initialize the model and robot data</span></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;  <a class="code" href="../../d9/d42/class_robot_runner.html#a0ce5b08a77c9093398f0863c13cced0e">_model</a> = <a class="code" href="../../d9/d42/class_robot_runner.html#a3fca77b8800f422df7b4479c1a9de256">_quadruped</a>.<a class="code" href="../../dc/d66/class_quadruped.html#ae3725898959888f0885981c43f127a07">buildModel</a>();</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;  <a class="code" href="../../d9/d42/class_robot_runner.html#a5e661baf2a4409d910c56852309e2eba">_jpos_initializer</a> = <span class="keyword">new</span> <a class="code" href="../../d6/d0e/class_j_pos_initializer.html">JPosInitializer&lt;float&gt;</a>(3.);</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;  </div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;  <span class="comment">// Always initialize the leg controller and state entimator</span></div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;  <a class="code" href="../../d9/d42/class_robot_runner.html#a5df8c8d98558dbf844abfcdcb21e805a">_legController</a> = <span class="keyword">new</span> <a class="code" href="../../d0/d96/class_leg_controller.html">LegController&lt;float&gt;</a>(<a class="code" href="../../d9/d42/class_robot_runner.html#a3fca77b8800f422df7b4479c1a9de256">_quadruped</a>);</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;  <a class="code" href="../../d9/d42/class_robot_runner.html#a4cfc6ffa3d96d78ea95633d602896a37">_stateEstimator</a> = <span class="keyword">new</span> <a class="code" href="../../d1/d3b/class_state_estimator_container.html">StateEstimatorContainer&lt;float&gt;</a>(</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;      <a class="code" href="../../d9/d42/class_robot_runner.html#a0c0ed1f15b551e355dd724696830d9ce">cheaterState</a>, <a class="code" href="../../d9/d42/class_robot_runner.html#a556fa8680fbd044ace2e0ac66db6c0ff">vectorNavData</a>, <a class="code" href="../../d9/d42/class_robot_runner.html#a5df8c8d98558dbf844abfcdcb21e805a">_legController</a>-&gt;<a class="code" href="../../d0/d96/class_leg_controller.html#acc73b19fc4f23265cc857cb94b49f7b3">datas</a>,</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;      &amp;<a class="code" href="../../d9/d42/class_robot_runner.html#a2740567fb438904e017aa1a8f29b2f15">_stateEstimate</a>, <a class="code" href="../../d9/d42/class_robot_runner.html#a1738f8f82abdedc10c25e0360fba2dec">controlParameters</a>);</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;  <a class="code" href="../../d9/d42/class_robot_runner.html#a2690089988868e09ee5827788bded47a">initializeStateEstimator</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;  <span class="comment">// Controller initializations</span></div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;  <a class="code" href="../../d9/d42/class_robot_runner.html#a22049e420073df0f4f7c0df114b5e917">_robot_ctrl</a>-&gt;<a class="code" href="../../d4/d6a/class_robot_controller.html#aaf59367872dc62cd652dad3ff9bf8b5b">_model</a> = &amp;<a class="code" href="../../d9/d42/class_robot_runner.html#a0ce5b08a77c9093398f0863c13cced0e">_model</a>;</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;  <a class="code" href="../../d9/d42/class_robot_runner.html#a22049e420073df0f4f7c0df114b5e917">_robot_ctrl</a>-&gt;<a class="code" href="../../d4/d6a/class_robot_controller.html#aacb14b1859bd16e29ec3c4d37aa7c846">_quadruped</a> = &amp;<a class="code" href="../../d9/d42/class_robot_runner.html#a3fca77b8800f422df7b4479c1a9de256">_quadruped</a>;</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;  <a class="code" href="../../d9/d42/class_robot_runner.html#a22049e420073df0f4f7c0df114b5e917">_robot_ctrl</a>-&gt;<a class="code" href="../../d4/d6a/class_robot_controller.html#aa13c93906f5c951a25d9f24e1e7110f9">_legController</a> = <a class="code" href="../../d9/d42/class_robot_runner.html#a5df8c8d98558dbf844abfcdcb21e805a">_legController</a>;</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;  <a class="code" href="../../d9/d42/class_robot_runner.html#a22049e420073df0f4f7c0df114b5e917">_robot_ctrl</a>-&gt;<a class="code" href="../../d4/d6a/class_robot_controller.html#a8f78c57d16d7a15b89cc5ac88a274045">_stateEstimator</a> = <a class="code" href="../../d9/d42/class_robot_runner.html#a4cfc6ffa3d96d78ea95633d602896a37">_stateEstimator</a>;</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;  <a class="code" href="../../d9/d42/class_robot_runner.html#a22049e420073df0f4f7c0df114b5e917">_robot_ctrl</a>-&gt;<a class="code" href="../../d4/d6a/class_robot_controller.html#ab3f789d8a20556dec8dadc5c8f73867c">_stateEstimate</a> = &amp;<a class="code" href="../../d9/d42/class_robot_runner.html#a2740567fb438904e017aa1a8f29b2f15">_stateEstimate</a>;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;  <a class="code" href="../../d9/d42/class_robot_runner.html#a22049e420073df0f4f7c0df114b5e917">_robot_ctrl</a>-&gt;<a class="code" href="../../d4/d6a/class_robot_controller.html#a69b6efc95fa6bd1c3a5434c444cd032d">_visualizationData</a>= <a class="code" href="../../d9/d42/class_robot_runner.html#a8c74848e52f20b1294d650641f40ea4f">visualizationData</a>;</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;  <a class="code" href="../../d9/d42/class_robot_runner.html#a22049e420073df0f4f7c0df114b5e917">_robot_ctrl</a>-&gt;<a class="code" href="../../d4/d6a/class_robot_controller.html#a60985529bde4f5c99ed71d2e87f01ed2">_robotType</a> = <a class="code" href="../../d9/d42/class_robot_runner.html#ac36f7f6395167f998afe23f6d4f86c82">robotType</a>;</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;  <a class="code" href="../../d9/d42/class_robot_runner.html#a22049e420073df0f4f7c0df114b5e917">_robot_ctrl</a>-&gt;<a class="code" href="../../d4/d6a/class_robot_controller.html#a623cc55a06ed7a2678822b577acf550e">_driverCommand</a> = <a class="code" href="../../d9/d42/class_robot_runner.html#ab68a04d6b506333426883633a6430656">driverCommand</a>;</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;  <a class="code" href="../../d9/d42/class_robot_runner.html#a22049e420073df0f4f7c0df114b5e917">_robot_ctrl</a>-&gt;<a class="code" href="../../d4/d6a/class_robot_controller.html#a3db3696aa7d0d0ced56dced76a7dec75">_controlParameters</a> = <a class="code" href="../../d9/d42/class_robot_runner.html#a1738f8f82abdedc10c25e0360fba2dec">controlParameters</a>;</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;  <a class="code" href="../../d9/d42/class_robot_runner.html#a22049e420073df0f4f7c0df114b5e917">_robot_ctrl</a>-&gt;<a class="code" href="../../d4/d6a/class_robot_controller.html#a4eef800145cb801ea6296630119b4a65">initializeController</a>();</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;}</div><div class="ttc" id="cpp_types_8h_html_a78d284d08fd22d809fd436256f2cbc39a590425b506eb87eff1a64ed14ffd1498"><div class="ttname"><a href="../../d9/d8e/cpp_types_8h.html#a78d284d08fd22d809fd436256f2cbc39a590425b506eb87eff1a64ed14ffd1498">RobotType::MINI_CHEETAH</a></div></div>
<div class="ttc" id="class_robot_runner_html_a5df8c8d98558dbf844abfcdcb21e805a"><div class="ttname"><a href="../../d9/d42/class_robot_runner.html#a5df8c8d98558dbf844abfcdcb21e805a">RobotRunner::_legController</a></div><div class="ttdeci">LegController&lt; float &gt; * _legController</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d41/_robot_runner_8h_source.html#l00068">RobotRunner.h:68</a></div></div>
<div class="ttc" id="class_robot_controller_html_a69b6efc95fa6bd1c3a5434c444cd032d"><div class="ttname"><a href="../../d4/d6a/class_robot_controller.html#a69b6efc95fa6bd1c3a5434c444cd032d">RobotController::_visualizationData</a></div><div class="ttdeci">VisualizationData * _visualizationData</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/dff/_robot_controller_8h_source.html#l00033">RobotController.h:33</a></div></div>
<div class="ttc" id="class_robot_controller_html_aa13c93906f5c951a25d9f24e1e7110f9"><div class="ttname"><a href="../../d4/d6a/class_robot_controller.html#aa13c93906f5c951a25d9f24e1e7110f9">RobotController::_legController</a></div><div class="ttdeci">LegController&lt; float &gt; * _legController</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/dff/_robot_controller_8h_source.html#l00027">RobotController.h:27</a></div></div>
<div class="ttc" id="class_robot_runner_html_a556fa8680fbd044ace2e0ac66db6c0ff"><div class="ttname"><a href="../../d9/d42/class_robot_runner.html#a556fa8680fbd044ace2e0ac66db6c0ff">RobotRunner::vectorNavData</a></div><div class="ttdeci">VectorNavData * vectorNavData</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d41/_robot_runner_8h_source.html#l00048">RobotRunner.h:48</a></div></div>
<div class="ttc" id="class_robot_runner_html_a2690089988868e09ee5827788bded47a"><div class="ttname"><a href="../../d9/d42/class_robot_runner.html#a2690089988868e09ee5827788bded47a">RobotRunner::initializeStateEstimator</a></div><div class="ttdeci">void initializeStateEstimator(bool cheaterMode=false)</div><div class="ttdef"><b>Definition:</b> <a href="../../db/d28/_robot_runner_8cpp_source.html#l00174">RobotRunner.cpp:174</a></div></div>
<div class="ttc" id="class_leg_controller_html"><div class="ttname"><a href="../../d0/d96/class_leg_controller.html">LegController&lt; float &gt;</a></div></div>
<div class="ttc" id="class_leg_controller_html_acc73b19fc4f23265cc857cb94b49f7b3"><div class="ttname"><a href="../../d0/d96/class_leg_controller.html#acc73b19fc4f23265cc857cb94b49f7b3">LegController::datas</a></div><div class="ttdeci">LegControllerData&lt; T &gt; datas[4]</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/d41/_leg_controller_8h_source.html#l00070">LegController.h:70</a></div></div>
<div class="ttc" id="class_robot_runner_html_ab68a04d6b506333426883633a6430656"><div class="ttname"><a href="../../d9/d42/class_robot_runner.html#ab68a04d6b506333426883633a6430656">RobotRunner::driverCommand</a></div><div class="ttdeci">GamepadCommand * driverCommand</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d41/_robot_runner_8h_source.html#l00046">RobotRunner.h:46</a></div></div>
<div class="ttc" id="class_robot_controller_html_ab3f789d8a20556dec8dadc5c8f73867c"><div class="ttname"><a href="../../d4/d6a/class_robot_controller.html#ab3f789d8a20556dec8dadc5c8f73867c">RobotController::_stateEstimate</a></div><div class="ttdeci">StateEstimate&lt; float &gt; * _stateEstimate</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/dff/_robot_controller_8h_source.html#l00029">RobotController.h:29</a></div></div>
<div class="ttc" id="class_robot_runner_html_a1738f8f82abdedc10c25e0360fba2dec"><div class="ttname"><a href="../../d9/d42/class_robot_runner.html#a1738f8f82abdedc10c25e0360fba2dec">RobotRunner::controlParameters</a></div><div class="ttdeci">RobotControlParameters * controlParameters</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d41/_robot_runner_8h_source.html#l00054">RobotRunner.h:54</a></div></div>
<div class="ttc" id="class_robot_controller_html_a623cc55a06ed7a2678822b577acf550e"><div class="ttname"><a href="../../d4/d6a/class_robot_controller.html#a623cc55a06ed7a2678822b577acf550e">RobotController::_driverCommand</a></div><div class="ttdeci">GamepadCommand * _driverCommand</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/dff/_robot_controller_8h_source.html#l00030">RobotController.h:30</a></div></div>
<div class="ttc" id="class_robot_controller_html_a3db3696aa7d0d0ced56dced76a7dec75"><div class="ttname"><a href="../../d4/d6a/class_robot_controller.html#a3db3696aa7d0d0ced56dced76a7dec75">RobotController::_controlParameters</a></div><div class="ttdeci">RobotControlParameters * _controlParameters</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/dff/_robot_controller_8h_source.html#l00031">RobotController.h:31</a></div></div>
<div class="ttc" id="class_robot_runner_html_a5e661baf2a4409d910c56852309e2eba"><div class="ttname"><a href="../../d9/d42/class_robot_runner.html#a5e661baf2a4409d910c56852309e2eba">RobotRunner::_jpos_initializer</a></div><div class="ttdeci">JPosInitializer&lt; float &gt; * _jpos_initializer</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d41/_robot_runner_8h_source.html#l00066">RobotRunner.h:66</a></div></div>
<div class="ttc" id="class_robot_runner_html_a0c0ed1f15b551e355dd724696830d9ce"><div class="ttname"><a href="../../d9/d42/class_robot_runner.html#a0c0ed1f15b551e355dd724696830d9ce">RobotRunner::cheaterState</a></div><div class="ttdeci">CheaterState&lt; double &gt; * cheaterState</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d41/_robot_runner_8h_source.html#l00049">RobotRunner.h:49</a></div></div>
<div class="ttc" id="class_robot_controller_html_a8f78c57d16d7a15b89cc5ac88a274045"><div class="ttname"><a href="../../d4/d6a/class_robot_controller.html#a8f78c57d16d7a15b89cc5ac88a274045">RobotController::_stateEstimator</a></div><div class="ttdeci">StateEstimatorContainer&lt; float &gt; * _stateEstimator</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/dff/_robot_controller_8h_source.html#l00028">RobotController.h:28</a></div></div>
<div class="ttc" id="class_state_estimator_container_html"><div class="ttname"><a href="../../d1/d3b/class_state_estimator_container.html">StateEstimatorContainer&lt; float &gt;</a></div></div>
<div class="ttc" id="class_robot_runner_html_a2740567fb438904e017aa1a8f29b2f15"><div class="ttname"><a href="../../d9/d42/class_robot_runner.html#a2740567fb438904e017aa1a8f29b2f15">RobotRunner::_stateEstimate</a></div><div class="ttdeci">StateEstimate&lt; float &gt; _stateEstimate</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d41/_robot_runner_8h_source.html#l00069">RobotRunner.h:69</a></div></div>
<div class="ttc" id="class_robot_controller_html_aaf59367872dc62cd652dad3ff9bf8b5b"><div class="ttname"><a href="../../d4/d6a/class_robot_controller.html#aaf59367872dc62cd652dad3ff9bf8b5b">RobotController::_model</a></div><div class="ttdeci">FloatingBaseModel&lt; float &gt; * _model</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/dff/_robot_controller_8h_source.html#l00026">RobotController.h:26</a></div></div>
<div class="ttc" id="class_robot_controller_html_a60985529bde4f5c99ed71d2e87f01ed2"><div class="ttname"><a href="../../d4/d6a/class_robot_controller.html#a60985529bde4f5c99ed71d2e87f01ed2">RobotController::_robotType</a></div><div class="ttdeci">RobotType _robotType</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/dff/_robot_controller_8h_source.html#l00034">RobotController.h:34</a></div></div>
<div class="ttc" id="class_robot_runner_html_a3fca77b8800f422df7b4479c1a9de256"><div class="ttname"><a href="../../d9/d42/class_robot_runner.html#a3fca77b8800f422df7b4479c1a9de256">RobotRunner::_quadruped</a></div><div class="ttdeci">Quadruped&lt; float &gt; _quadruped</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d41/_robot_runner_8h_source.html#l00067">RobotRunner.h:67</a></div></div>
<div class="ttc" id="class_robot_runner_html_a0ce5b08a77c9093398f0863c13cced0e"><div class="ttname"><a href="../../d9/d42/class_robot_runner.html#a0ce5b08a77c9093398f0863c13cced0e">RobotRunner::_model</a></div><div class="ttdeci">FloatingBaseModel&lt; float &gt; _model</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d41/_robot_runner_8h_source.html#l00079">RobotRunner.h:79</a></div></div>
<div class="ttc" id="class_j_pos_initializer_html"><div class="ttname"><a href="../../d6/d0e/class_j_pos_initializer.html">JPosInitializer&lt; float &gt;</a></div></div>
<div class="ttc" id="class_robot_controller_html_a4eef800145cb801ea6296630119b4a65"><div class="ttname"><a href="../../d4/d6a/class_robot_controller.html#a4eef800145cb801ea6296630119b4a65">RobotController::initializeController</a></div><div class="ttdeci">virtual void initializeController()=0</div></div>
<div class="ttc" id="class_robot_runner_html_a4cfc6ffa3d96d78ea95633d602896a37"><div class="ttname"><a href="../../d9/d42/class_robot_runner.html#a4cfc6ffa3d96d78ea95633d602896a37">RobotRunner::_stateEstimator</a></div><div class="ttdeci">StateEstimatorContainer&lt; float &gt; * _stateEstimator</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d41/_robot_runner_8h_source.html#l00070">RobotRunner.h:70</a></div></div>
<div class="ttc" id="class_robot_runner_html_a8c74848e52f20b1294d650641f40ea4f"><div class="ttname"><a href="../../d9/d42/class_robot_runner.html#a8c74848e52f20b1294d650641f40ea4f">RobotRunner::visualizationData</a></div><div class="ttdeci">VisualizationData * visualizationData</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d41/_robot_runner_8h_source.html#l00055">RobotRunner.h:55</a></div></div>
<div class="ttc" id="class_robot_controller_html_aacb14b1859bd16e29ec3c4d37aa7c846"><div class="ttname"><a href="../../d4/d6a/class_robot_controller.html#aacb14b1859bd16e29ec3c4d37aa7c846">RobotController::_quadruped</a></div><div class="ttdeci">Quadruped&lt; float &gt; * _quadruped</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/dff/_robot_controller_8h_source.html#l00025">RobotController.h:25</a></div></div>
<div class="ttc" id="class_quadruped_html_ae3725898959888f0885981c43f127a07"><div class="ttname"><a href="../../dc/d66/class_quadruped.html#ae3725898959888f0885981c43f127a07">Quadruped::buildModel</a></div><div class="ttdeci">FloatingBaseModel&lt; T &gt; buildModel()</div><div class="ttdef"><b>Definition:</b> <a href="../../da/dfc/_quadruped_8cpp_source.html#l00113">Quadruped.cpp:113</a></div></div>
<div class="ttc" id="class_robot_runner_html_a22049e420073df0f4f7c0df114b5e917"><div class="ttname"><a href="../../d9/d42/class_robot_runner.html#a22049e420073df0f4f7c0df114b5e917">RobotRunner::_robot_ctrl</a></div><div class="ttdeci">RobotController * _robot_ctrl</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d41/_robot_runner_8h_source.html#l00044">RobotRunner.h:44</a></div></div>
<div class="ttc" id="class_robot_runner_html_ac36f7f6395167f998afe23f6d4f86c82"><div class="ttname"><a href="../../d9/d42/class_robot_runner.html#ac36f7f6395167f998afe23f6d4f86c82">RobotRunner::robotType</a></div><div class="ttdeci">RobotType robotType</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d41/_robot_runner_8h_source.html#l00047">RobotRunner.h:47</a></div></div>
</div><!-- fragment -->
<p><div id="dynsection-4" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-4-trigger" src="../../closed.png" alt="+"/> Here is the call graph for this function:</div>
<div id="dynsection-4-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-4-content" class="dyncontent" style="display:none;">
<div class="center"><img src="../../d9/d42/class_robot_runner_affa2cfda073a7b1742561154c3081ae5_cgraph.png" border="0" usemap="#d9/d42/class_robot_runner_affa2cfda073a7b1742561154c3081ae5_cgraph" alt=""/></div>
<map name="d9/d42/class_robot_runner_affa2cfda073a7b1742561154c3081ae5_cgraph" id="d9/d42/class_robot_runner_affa2cfda073a7b1742561154c3081ae5_cgraph">
</map>
</div>
</p>

<p><div id="dynsection-5" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-5-trigger" src="../../closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-5-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-5-content" class="dyncontent" style="display:none;">
<div class="center"><img src="../../d9/d42/class_robot_runner_affa2cfda073a7b1742561154c3081ae5_icgraph.png" border="0" usemap="#d9/d42/class_robot_runner_affa2cfda073a7b1742561154c3081ae5_icgraph" alt=""/></div>
<map name="d9/d42/class_robot_runner_affa2cfda073a7b1742561154c3081ae5_icgraph" id="d9/d42/class_robot_runner_affa2cfda073a7b1742561154c3081ae5_icgraph">
</map>
</div>
</p>

</div>
</div>
<a class="anchor" id="a2690089988868e09ee5827788bded47a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void RobotRunner::initializeStateEstimator </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>cheaterMode</em> = <code>false</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="../../db/d28/_robot_runner_8cpp_source.html#l00174">174</a> of file <a class="el" href="../../db/d28/_robot_runner_8cpp_source.html">RobotRunner.cpp</a>.</p>

<p>References <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00070">_stateEstimator</a>, <a class="el" href="../../d8/d87/_state_estimator_container_8h_source.html#l00139">StateEstimatorContainer&lt; T &gt;::addEstimator()</a>, <a class="el" href="../../d8/d87/_state_estimator_container_8h_source.html#l00170">StateEstimatorContainer&lt; T &gt;::removeAllEstimators()</a>, and <a class="el" href="../../d8/d87/_state_estimator_container_8h_source.html#l00132">StateEstimatorContainer&lt; T &gt;::setContactPhase()</a>.</p>
<div class="fragment"><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;                                                           {</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;  <a class="code" href="../../d9/d42/class_robot_runner.html#a4cfc6ffa3d96d78ea95633d602896a37">_stateEstimator</a>-&gt;<a class="code" href="../../d1/d3b/class_state_estimator_container.html#ad14b9aedc91b17e460bec6f5b73e024e">removeAllEstimators</a>();</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;  <a class="code" href="../../d9/d42/class_robot_runner.html#a4cfc6ffa3d96d78ea95633d602896a37">_stateEstimator</a>-&gt;<a class="code" href="../../d1/d3b/class_state_estimator_container.html#a82af04a884b97b78cabfa79e85fd353f">addEstimator</a>&lt;<a class="code" href="../../d3/dd0/class_contact_estimator.html">ContactEstimator&lt;float&gt;</a>&gt;();</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;  <a class="code" href="../../d9/d8e/cpp_types_8h.html#a738072d0d6a7a632be68f6261501826b">Vec4&lt;float&gt;</a> contactDefault;</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;  contactDefault &lt;&lt; 0.5, 0.5, 0.5, 0.5;</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;  <a class="code" href="../../d9/d42/class_robot_runner.html#a4cfc6ffa3d96d78ea95633d602896a37">_stateEstimator</a>-&gt;<a class="code" href="../../d1/d3b/class_state_estimator_container.html#a100bfcb62c735fef211ae5564ca2e4f6">setContactPhase</a>(contactDefault);</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;  <span class="keywordflow">if</span> (cheaterMode) {</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;    <a class="code" href="../../d9/d42/class_robot_runner.html#a4cfc6ffa3d96d78ea95633d602896a37">_stateEstimator</a>-&gt;<a class="code" href="../../d1/d3b/class_state_estimator_container.html#a82af04a884b97b78cabfa79e85fd353f">addEstimator</a>&lt;<a class="code" href="../../d3/dab/class_cheater_orientation_estimator.html">CheaterOrientationEstimator&lt;float&gt;</a>&gt;();</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;    <a class="code" href="../../d9/d42/class_robot_runner.html#a4cfc6ffa3d96d78ea95633d602896a37">_stateEstimator</a>-&gt;<a class="code" href="../../d1/d3b/class_state_estimator_container.html#a82af04a884b97b78cabfa79e85fd353f">addEstimator</a>&lt;<a class="code" href="../../d1/d10/class_cheater_position_velocity_estimator.html">CheaterPositionVelocityEstimator&lt;float&gt;</a>&gt;();</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;    <a class="code" href="../../d9/d42/class_robot_runner.html#a4cfc6ffa3d96d78ea95633d602896a37">_stateEstimator</a>-&gt;<a class="code" href="../../d1/d3b/class_state_estimator_container.html#a82af04a884b97b78cabfa79e85fd353f">addEstimator</a>&lt;<a class="code" href="../../d3/dac/class_vector_nav_orientation_estimator.html">VectorNavOrientationEstimator&lt;float&gt;</a>&gt;();</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;    <a class="code" href="../../d9/d42/class_robot_runner.html#a4cfc6ffa3d96d78ea95633d602896a37">_stateEstimator</a>-&gt;<a class="code" href="../../d1/d3b/class_state_estimator_container.html#a82af04a884b97b78cabfa79e85fd353f">addEstimator</a>&lt;<a class="code" href="../../d1/d83/class_linear_k_f_position_velocity_estimator.html">LinearKFPositionVelocityEstimator&lt;float&gt;</a>&gt;();</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;  }</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;}</div><div class="ttc" id="class_contact_estimator_html"><div class="ttname"><a href="../../d3/dd0/class_contact_estimator.html">ContactEstimator</a></div><div class="ttdef"><b>Definition:</b> <a href="../../db/d94/_contact_estimator_8h_source.html#l00017">ContactEstimator.h:17</a></div></div>
<div class="ttc" id="class_state_estimator_container_html_ad14b9aedc91b17e460bec6f5b73e024e"><div class="ttname"><a href="../../d1/d3b/class_state_estimator_container.html#ad14b9aedc91b17e460bec6f5b73e024e">StateEstimatorContainer::removeAllEstimators</a></div><div class="ttdeci">void removeAllEstimators()</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d87/_state_estimator_container_8h_source.html#l00170">StateEstimatorContainer.h:170</a></div></div>
<div class="ttc" id="class_state_estimator_container_html_a82af04a884b97b78cabfa79e85fd353f"><div class="ttname"><a href="../../d1/d3b/class_state_estimator_container.html#a82af04a884b97b78cabfa79e85fd353f">StateEstimatorContainer::addEstimator</a></div><div class="ttdeci">void addEstimator()</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d87/_state_estimator_container_8h_source.html#l00139">StateEstimatorContainer.h:139</a></div></div>
<div class="ttc" id="class_cheater_orientation_estimator_html"><div class="ttname"><a href="../../d3/dab/class_cheater_orientation_estimator.html">CheaterOrientationEstimator</a></div><div class="ttdef"><b>Definition:</b> <a href="../../dd/df4/_orientation_estimator_8h_source.html#l00018">OrientationEstimator.h:18</a></div></div>
<div class="ttc" id="cpp_types_8h_html_a738072d0d6a7a632be68f6261501826b"><div class="ttname"><a href="../../d9/d8e/cpp_types_8h.html#a738072d0d6a7a632be68f6261501826b">Vec4</a></div><div class="ttdeci">typename Eigen::Matrix&lt; T, 4, 1 &gt; Vec4</div><div class="ttdef"><b>Definition:</b> <a href="../../d9/d8e/cpp_types_8h_source.html#l00030">cppTypes.h:30</a></div></div>
<div class="ttc" id="class_cheater_position_velocity_estimator_html"><div class="ttname"><a href="../../d1/d10/class_cheater_position_velocity_estimator.html">CheaterPositionVelocityEstimator</a></div><div class="ttdef"><b>Definition:</b> <a href="../../df/ddd/_position_velocity_estimator_8h_source.html#l00036">PositionVelocityEstimator.h:36</a></div></div>
<div class="ttc" id="class_vector_nav_orientation_estimator_html"><div class="ttname"><a href="../../d3/dac/class_vector_nav_orientation_estimator.html">VectorNavOrientationEstimator</a></div><div class="ttdef"><b>Definition:</b> <a href="../../dd/df4/_orientation_estimator_8h_source.html#l00025">OrientationEstimator.h:25</a></div></div>
<div class="ttc" id="class_state_estimator_container_html_a100bfcb62c735fef211ae5564ca2e4f6"><div class="ttname"><a href="../../d1/d3b/class_state_estimator_container.html#a100bfcb62c735fef211ae5564ca2e4f6">StateEstimatorContainer::setContactPhase</a></div><div class="ttdeci">void setContactPhase(Vec4&lt; T &gt; &amp;phase)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d87/_state_estimator_container_8h_source.html#l00132">StateEstimatorContainer.h:132</a></div></div>
<div class="ttc" id="class_robot_runner_html_a4cfc6ffa3d96d78ea95633d602896a37"><div class="ttname"><a href="../../d9/d42/class_robot_runner.html#a4cfc6ffa3d96d78ea95633d602896a37">RobotRunner::_stateEstimator</a></div><div class="ttdeci">StateEstimatorContainer&lt; float &gt; * _stateEstimator</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d41/_robot_runner_8h_source.html#l00070">RobotRunner.h:70</a></div></div>
<div class="ttc" id="class_linear_k_f_position_velocity_estimator_html"><div class="ttname"><a href="../../d1/d83/class_linear_k_f_position_velocity_estimator.html">LinearKFPositionVelocityEstimator</a></div><div class="ttdef"><b>Definition:</b> <a href="../../df/ddd/_position_velocity_estimator_8h_source.html#l00016">PositionVelocityEstimator.h:16</a></div></div>
</div><!-- fragment -->
<p><div id="dynsection-6" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-6-trigger" src="../../closed.png" alt="+"/> Here is the call graph for this function:</div>
<div id="dynsection-6-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-6-content" class="dyncontent" style="display:none;">
<div class="center"><img src="../../d9/d42/class_robot_runner_a2690089988868e09ee5827788bded47a_cgraph.png" border="0" usemap="#d9/d42/class_robot_runner_a2690089988868e09ee5827788bded47a_cgraph" alt=""/></div>
<map name="d9/d42/class_robot_runner_a2690089988868e09ee5827788bded47a_cgraph" id="d9/d42/class_robot_runner_a2690089988868e09ee5827788bded47a_cgraph">
</map>
</div>
</p>

<p><div id="dynsection-7" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-7-trigger" src="../../closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-7-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-7-content" class="dyncontent" style="display:none;">
<div class="center"><img src="../../d9/d42/class_robot_runner_a2690089988868e09ee5827788bded47a_icgraph.png" border="0" usemap="#d9/d42/class_robot_runner_a2690089988868e09ee5827788bded47a_icgraph" alt=""/></div>
<map name="d9/d42/class_robot_runner_a2690089988868e09ee5827788bded47a_icgraph" id="d9/d42/class_robot_runner_a2690089988868e09ee5827788bded47a_icgraph">
</map>
</div>
</p>

</div>
</div>
<a class="anchor" id="a00f9204f3367b9948a2053e66d92c844"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void RobotRunner::run </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Runs the overall robot control system by calling each of the major components to run each of their respective steps. </p>

<p>Implements <a class="el" href="../../de/d2f/class_periodic_task.html#ae6976f44c995555b6403b38443fb2eb5">PeriodicTask</a>.</p>

<p>Definition at line <a class="el" href="../../db/d28/_robot_runner_8cpp_source.html#l00067">67</a> of file <a class="el" href="../../db/d28/_robot_runner_8cpp_source.html">RobotRunner.cpp</a>.</p>

<p>References <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00066">_jpos_initializer</a>, <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00068">_legController</a>, <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00044">_robot_ctrl</a>, <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00069">_stateEstimate</a>, <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00070">_stateEstimator</a>, <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00056">cheetahMainVisualization</a>, <a class="el" href="../../df/d0d/_visualization_data_8h_source.html#l00069">VisualizationData::clear()</a>, <a class="el" href="../../d0/d41/_leg_controller_8h_source.html#l00069">LegController&lt; T &gt;::commands</a>, <a class="el" href="../../d0/d41/_leg_controller_8h_source.html#l00070">LegController&lt; T &gt;::datas</a>, <a class="el" href="../../db/d28/_robot_runner_8cpp_source.html#l00158">finalizeStep()</a>, <a class="el" href="../../d0/d85/_j_pos_initializer_8cpp_source.html#l00020">JPosInitializer&lt; T &gt;::IsInitialized()</a>, <a class="el" href="../../d0/d41/_leg_controller_8h_source.html#l00030">LegControllerCommand&lt; T &gt;::kdJoint</a>, <a class="el" href="../../d0/d41/_leg_controller_8h_source.html#l00030">LegControllerCommand&lt; T &gt;::kpJoint</a>, <a class="el" href="../../df/d0d/_visualization_data_8h_source.html#l00040">CheetahVisualization::p</a>, <a class="el" href="../../d8/d87/_state_estimator_container_8h_source.html#l00026">StateEstimate&lt; T &gt;::position</a>, <a class="el" href="../../df/d0d/_visualization_data_8h_source.html#l00038">CheetahVisualization::q</a>, <a class="el" href="../../d0/d41/_leg_controller_8h_source.html#l00042">LegControllerData&lt; T &gt;::q</a>, <a class="el" href="../../d8/d87/_state_estimator_container_8h_source.html#l00113">StateEstimatorContainer&lt; T &gt;::run()</a>, <a class="el" href="../../d4/d6a/class_robot_controller.html#a5242fbdd2532b1581ac45829be9688c9">RobotController::runController()</a>, <a class="el" href="../../d0/d41/_leg_controller_8h_source.html#l00061">LegController&lt; T &gt;::setEnabled()</a>, <a class="el" href="../../db/d28/_robot_runner_8cpp_source.html#l00123">setupStep()</a>, <a class="el" href="../../d4/d6a/class_robot_controller.html#a851e8f5aedb72a736cbaddb3dba3c5c2">RobotController::updateVisualization()</a>, and <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00055">visualizationData</a>.</p>
<div class="fragment"><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;                      {</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;  <span class="comment">// Run the state estimator step</span></div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;  <a class="code" href="../../d9/d42/class_robot_runner.html#a4cfc6ffa3d96d78ea95633d602896a37">_stateEstimator</a>-&gt;<a class="code" href="../../d1/d3b/class_state_estimator_container.html#a04295b74cd777aa6bdf8c155c506ae2c">run</a>(<a class="code" href="../../d9/d42/class_robot_runner.html#ad49f79affbf6c35d4c8ac21a50cb8ae3">cheetahMainVisualization</a>);</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;  <a class="code" href="../../d9/d42/class_robot_runner.html#ad49f79affbf6c35d4c8ac21a50cb8ae3">cheetahMainVisualization</a>-&gt;<a class="code" href="../../d0/d6d/struct_cheetah_visualization.html#a0f858c48a4b04052b7f4f9346f796e3a">p</a> = <a class="code" href="../../d9/d42/class_robot_runner.html#a2740567fb438904e017aa1a8f29b2f15">_stateEstimate</a>.<a class="code" href="../../dd/df3/struct_state_estimate.html#ae7dc9d3ea4146a925188e5d76a011eb0">position</a>;</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;  <a class="code" href="../../d9/d42/class_robot_runner.html#a8c74848e52f20b1294d650641f40ea4f">visualizationData</a>-&gt;<a class="code" href="../../d3/d60/struct_visualization_data.html#a91271be43d61b7611b9487270f5e74e2">clear</a>();</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;  <span class="comment">// Update the data from the robot</span></div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;  <a class="code" href="../../d9/d42/class_robot_runner.html#a350d9f78e20c990d39533024dce26759">setupStep</a>();</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;  <span class="keyword">static</span> <span class="keywordtype">int</span> count_ini(0);</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;  ++count_ini;</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;  <span class="keywordflow">if</span> (count_ini &lt; 10) {</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    <a class="code" href="../../d9/d42/class_robot_runner.html#a5df8c8d98558dbf844abfcdcb21e805a">_legController</a>-&gt;<a class="code" href="../../d0/d96/class_leg_controller.html#a47178c450659ac6793ac7a74351094e5">setEnabled</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (20 &lt; count_ini &amp;&amp; count_ini &lt; 30) {</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    <a class="code" href="../../d9/d42/class_robot_runner.html#a5df8c8d98558dbf844abfcdcb21e805a">_legController</a>-&gt;<a class="code" href="../../d0/d96/class_leg_controller.html#a47178c450659ac6793ac7a74351094e5">setEnabled</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (40 &lt; count_ini &amp;&amp; count_ini &lt; 50) {</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    <a class="code" href="../../d9/d42/class_robot_runner.html#a5df8c8d98558dbf844abfcdcb21e805a">_legController</a>-&gt;<a class="code" href="../../d0/d96/class_leg_controller.html#a47178c450659ac6793ac7a74351094e5">setEnabled</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    <a class="code" href="../../d9/d42/class_robot_runner.html#a5df8c8d98558dbf844abfcdcb21e805a">_legController</a>-&gt;<a class="code" href="../../d0/d96/class_leg_controller.html#a47178c450659ac6793ac7a74351094e5">setEnabled</a>(<span class="keyword">true</span>);</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    <span class="comment">// Controller</span></div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    <span class="keywordflow">if</span> (!<a class="code" href="../../d9/d42/class_robot_runner.html#a5e661baf2a4409d910c56852309e2eba">_jpos_initializer</a>-&gt;<a class="code" href="../../d6/d0e/class_j_pos_initializer.html#a8d46811551914913c7799360daebeee2">IsInitialized</a>(<a class="code" href="../../d9/d42/class_robot_runner.html#a5df8c8d98558dbf844abfcdcb21e805a">_legController</a>)) {</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;      <a class="code" href="../../d9/d8e/cpp_types_8h.html#aa8cb424e643d476ea485238dad7c3e18">Mat3&lt;float&gt;</a> kpMat;</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;      <a class="code" href="../../d9/d8e/cpp_types_8h.html#aa8cb424e643d476ea485238dad7c3e18">Mat3&lt;float&gt;</a> kdMat;</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;      kpMat &lt;&lt; 5, 0, 0, 0, 5, 0, 0, 0, 5;</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;      kdMat &lt;&lt; 0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1;</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;      <span class="keywordflow">for</span> (<span class="keywordtype">int</span> leg = 0; leg &lt; 4; leg++) {</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;        <a class="code" href="../../d9/d42/class_robot_runner.html#a5df8c8d98558dbf844abfcdcb21e805a">_legController</a>-&gt;<a class="code" href="../../d0/d96/class_leg_controller.html#a0989efb2b62a34f7cef3f4cf29b6783f">commands</a>[leg].<a class="code" href="../../d1/d6a/struct_leg_controller_command.html#adaddead1b272b0f2631fc0158dedeac5">kpJoint</a> = kpMat;</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;        <a class="code" href="../../d9/d42/class_robot_runner.html#a5df8c8d98558dbf844abfcdcb21e805a">_legController</a>-&gt;<a class="code" href="../../d0/d96/class_leg_controller.html#a0989efb2b62a34f7cef3f4cf29b6783f">commands</a>[leg].<a class="code" href="../../d1/d6a/struct_leg_controller_command.html#af933954e490da98794606debc8984051">kdJoint</a> = kdMat;</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;      }</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;      <span class="comment">// Run Control </span></div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;      <a class="code" href="../../d9/d42/class_robot_runner.html#a22049e420073df0f4f7c0df114b5e917">_robot_ctrl</a>-&gt;<a class="code" href="../../d4/d6a/class_robot_controller.html#a5242fbdd2532b1581ac45829be9688c9">runController</a>();</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;      <span class="comment">// Update Visualization</span></div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;      <a class="code" href="../../d9/d42/class_robot_runner.html#a22049e420073df0f4f7c0df114b5e917">_robot_ctrl</a>-&gt;<a class="code" href="../../d4/d6a/class_robot_controller.html#a851e8f5aedb72a736cbaddb3dba3c5c2">updateVisualization</a>();</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    }</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;  }</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;  <span class="comment">// Visualization (will make this into a separate function later)</span></div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> leg = 0; leg &lt; 4; leg++) {</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">int</span> joint = 0; joint &lt; 3; joint++) {</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;      <a class="code" href="../../d9/d42/class_robot_runner.html#ad49f79affbf6c35d4c8ac21a50cb8ae3">cheetahMainVisualization</a>-&gt;<a class="code" href="../../d0/d6d/struct_cheetah_visualization.html#a0ce991af43feb270e6f6c3ac31c027cd">q</a>[leg * 3 + joint] =</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        <a class="code" href="../../d9/d42/class_robot_runner.html#a5df8c8d98558dbf844abfcdcb21e805a">_legController</a>-&gt;<a class="code" href="../../d0/d96/class_leg_controller.html#acc73b19fc4f23265cc857cb94b49f7b3">datas</a>[leg].<a class="code" href="../../d7/d6e/struct_leg_controller_data.html#a934f4590f7b794f3ccddab815b6d377c">q</a>[joint];</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    }</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;  }</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;  <a class="code" href="../../d9/d42/class_robot_runner.html#ad49f79affbf6c35d4c8ac21a50cb8ae3">cheetahMainVisualization</a>-&gt;<a class="code" href="../../d0/d6d/struct_cheetah_visualization.html#a0f858c48a4b04052b7f4f9346f796e3a">p</a>.setZero();</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;  <a class="code" href="../../d9/d42/class_robot_runner.html#ad49f79affbf6c35d4c8ac21a50cb8ae3">cheetahMainVisualization</a>-&gt;<a class="code" href="../../d0/d6d/struct_cheetah_visualization.html#a0f858c48a4b04052b7f4f9346f796e3a">p</a> = <a class="code" href="../../d9/d42/class_robot_runner.html#a2740567fb438904e017aa1a8f29b2f15">_stateEstimate</a>.<a class="code" href="../../dd/df3/struct_state_estimate.html#ae7dc9d3ea4146a925188e5d76a011eb0">position</a>;</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;  <span class="comment">// Sets the leg controller commands for the robot appropriate commands</span></div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;  <a class="code" href="../../d9/d42/class_robot_runner.html#aca37fb89c947e01ce01a4853f0ebfb25">finalizeStep</a>();</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;}</div><div class="ttc" id="class_robot_runner_html_aca37fb89c947e01ce01a4853f0ebfb25"><div class="ttname"><a href="../../d9/d42/class_robot_runner.html#aca37fb89c947e01ce01a4853f0ebfb25">RobotRunner::finalizeStep</a></div><div class="ttdeci">void finalizeStep()</div><div class="ttdef"><b>Definition:</b> <a href="../../db/d28/_robot_runner_8cpp_source.html#l00158">RobotRunner.cpp:158</a></div></div>
<div class="ttc" id="struct_cheetah_visualization_html_a0ce991af43feb270e6f6c3ac31c027cd"><div class="ttname"><a href="../../d0/d6d/struct_cheetah_visualization.html#a0ce991af43feb270e6f6c3ac31c027cd">CheetahVisualization::q</a></div><div class="ttdeci">Vec12&lt; float &gt; q</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d0d/_visualization_data_8h_source.html#l00038">VisualizationData.h:38</a></div></div>
<div class="ttc" id="class_j_pos_initializer_html_a8d46811551914913c7799360daebeee2"><div class="ttname"><a href="../../d6/d0e/class_j_pos_initializer.html#a8d46811551914913c7799360daebeee2">JPosInitializer::IsInitialized</a></div><div class="ttdeci">bool IsInitialized(LegController&lt; T &gt; *)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/d85/_j_pos_initializer_8cpp_source.html#l00020">JPosInitializer.cpp:20</a></div></div>
<div class="ttc" id="class_robot_runner_html_a5df8c8d98558dbf844abfcdcb21e805a"><div class="ttname"><a href="../../d9/d42/class_robot_runner.html#a5df8c8d98558dbf844abfcdcb21e805a">RobotRunner::_legController</a></div><div class="ttdeci">LegController&lt; float &gt; * _legController</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d41/_robot_runner_8h_source.html#l00068">RobotRunner.h:68</a></div></div>
<div class="ttc" id="struct_state_estimate_html_ae7dc9d3ea4146a925188e5d76a011eb0"><div class="ttname"><a href="../../dd/df3/struct_state_estimate.html#ae7dc9d3ea4146a925188e5d76a011eb0">StateEstimate::position</a></div><div class="ttdeci">Vec3&lt; T &gt; position</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d87/_state_estimator_container_8h_source.html#l00026">StateEstimatorContainer.h:26</a></div></div>
<div class="ttc" id="cpp_types_8h_html_aa8cb424e643d476ea485238dad7c3e18"><div class="ttname"><a href="../../d9/d8e/cpp_types_8h.html#aa8cb424e643d476ea485238dad7c3e18">Mat3</a></div><div class="ttdeci">typename Eigen::Matrix&lt; T, 3, 3 &gt; Mat3</div><div class="ttdef"><b>Definition:</b> <a href="../../d9/d8e/cpp_types_8h_source.html#l00054">cppTypes.h:54</a></div></div>
<div class="ttc" id="struct_cheetah_visualization_html_a0f858c48a4b04052b7f4f9346f796e3a"><div class="ttname"><a href="../../d0/d6d/struct_cheetah_visualization.html#a0f858c48a4b04052b7f4f9346f796e3a">CheetahVisualization::p</a></div><div class="ttdeci">Vec3&lt; float &gt; p</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d0d/_visualization_data_8h_source.html#l00040">VisualizationData.h:40</a></div></div>
<div class="ttc" id="class_leg_controller_html_acc73b19fc4f23265cc857cb94b49f7b3"><div class="ttname"><a href="../../d0/d96/class_leg_controller.html#acc73b19fc4f23265cc857cb94b49f7b3">LegController::datas</a></div><div class="ttdeci">LegControllerData&lt; T &gt; datas[4]</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/d41/_leg_controller_8h_source.html#l00070">LegController.h:70</a></div></div>
<div class="ttc" id="class_robot_controller_html_a5242fbdd2532b1581ac45829be9688c9"><div class="ttname"><a href="../../d4/d6a/class_robot_controller.html#a5242fbdd2532b1581ac45829be9688c9">RobotController::runController</a></div><div class="ttdeci">virtual void runController()=0</div></div>
<div class="ttc" id="struct_leg_controller_command_html_af933954e490da98794606debc8984051"><div class="ttname"><a href="../../d1/d6a/struct_leg_controller_command.html#af933954e490da98794606debc8984051">LegControllerCommand::kdJoint</a></div><div class="ttdeci">Mat3&lt; T &gt; kdJoint</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/d41/_leg_controller_8h_source.html#l00030">LegController.h:30</a></div></div>
<div class="ttc" id="class_robot_runner_html_ad49f79affbf6c35d4c8ac21a50cb8ae3"><div class="ttname"><a href="../../d9/d42/class_robot_runner.html#ad49f79affbf6c35d4c8ac21a50cb8ae3">RobotRunner::cheetahMainVisualization</a></div><div class="ttdeci">CheetahVisualization * cheetahMainVisualization</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d41/_robot_runner_8h_source.html#l00056">RobotRunner.h:56</a></div></div>
<div class="ttc" id="struct_leg_controller_data_html_a934f4590f7b794f3ccddab815b6d377c"><div class="ttname"><a href="../../d7/d6e/struct_leg_controller_data.html#a934f4590f7b794f3ccddab815b6d377c">LegControllerData::q</a></div><div class="ttdeci">Vec3&lt; T &gt; q</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/d41/_leg_controller_8h_source.html#l00042">LegController.h:42</a></div></div>
<div class="ttc" id="class_leg_controller_html_a47178c450659ac6793ac7a74351094e5"><div class="ttname"><a href="../../d0/d96/class_leg_controller.html#a47178c450659ac6793ac7a74351094e5">LegController::setEnabled</a></div><div class="ttdeci">void setEnabled(bool enabled)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/d41/_leg_controller_8h_source.html#l00061">LegController.h:61</a></div></div>
<div class="ttc" id="class_robot_runner_html_a5e661baf2a4409d910c56852309e2eba"><div class="ttname"><a href="../../d9/d42/class_robot_runner.html#a5e661baf2a4409d910c56852309e2eba">RobotRunner::_jpos_initializer</a></div><div class="ttdeci">JPosInitializer&lt; float &gt; * _jpos_initializer</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d41/_robot_runner_8h_source.html#l00066">RobotRunner.h:66</a></div></div>
<div class="ttc" id="class_robot_controller_html_a851e8f5aedb72a736cbaddb3dba3c5c2"><div class="ttname"><a href="../../d4/d6a/class_robot_controller.html#a851e8f5aedb72a736cbaddb3dba3c5c2">RobotController::updateVisualization</a></div><div class="ttdeci">virtual void updateVisualization()=0</div></div>
<div class="ttc" id="class_state_estimator_container_html_a04295b74cd777aa6bdf8c155c506ae2c"><div class="ttname"><a href="../../d1/d3b/class_state_estimator_container.html#a04295b74cd777aa6bdf8c155c506ae2c">StateEstimatorContainer::run</a></div><div class="ttdeci">void run(CheetahVisualization *visualization=nullptr)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d87/_state_estimator_container_8h_source.html#l00113">StateEstimatorContainer.h:113</a></div></div>
<div class="ttc" id="class_robot_runner_html_a2740567fb438904e017aa1a8f29b2f15"><div class="ttname"><a href="../../d9/d42/class_robot_runner.html#a2740567fb438904e017aa1a8f29b2f15">RobotRunner::_stateEstimate</a></div><div class="ttdeci">StateEstimate&lt; float &gt; _stateEstimate</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d41/_robot_runner_8h_source.html#l00069">RobotRunner.h:69</a></div></div>
<div class="ttc" id="struct_leg_controller_command_html_adaddead1b272b0f2631fc0158dedeac5"><div class="ttname"><a href="../../d1/d6a/struct_leg_controller_command.html#adaddead1b272b0f2631fc0158dedeac5">LegControllerCommand::kpJoint</a></div><div class="ttdeci">Mat3&lt; T &gt; kpJoint</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/d41/_leg_controller_8h_source.html#l00030">LegController.h:30</a></div></div>
<div class="ttc" id="class_robot_runner_html_a350d9f78e20c990d39533024dce26759"><div class="ttname"><a href="../../d9/d42/class_robot_runner.html#a350d9f78e20c990d39533024dce26759">RobotRunner::setupStep</a></div><div class="ttdeci">void setupStep()</div><div class="ttdef"><b>Definition:</b> <a href="../../db/d28/_robot_runner_8cpp_source.html#l00123">RobotRunner.cpp:123</a></div></div>
<div class="ttc" id="class_robot_runner_html_a4cfc6ffa3d96d78ea95633d602896a37"><div class="ttname"><a href="../../d9/d42/class_robot_runner.html#a4cfc6ffa3d96d78ea95633d602896a37">RobotRunner::_stateEstimator</a></div><div class="ttdeci">StateEstimatorContainer&lt; float &gt; * _stateEstimator</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d41/_robot_runner_8h_source.html#l00070">RobotRunner.h:70</a></div></div>
<div class="ttc" id="class_robot_runner_html_a8c74848e52f20b1294d650641f40ea4f"><div class="ttname"><a href="../../d9/d42/class_robot_runner.html#a8c74848e52f20b1294d650641f40ea4f">RobotRunner::visualizationData</a></div><div class="ttdeci">VisualizationData * visualizationData</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d41/_robot_runner_8h_source.html#l00055">RobotRunner.h:55</a></div></div>
<div class="ttc" id="struct_visualization_data_html_a91271be43d61b7611b9487270f5e74e2"><div class="ttname"><a href="../../d3/d60/struct_visualization_data.html#a91271be43d61b7611b9487270f5e74e2">VisualizationData::clear</a></div><div class="ttdeci">void clear()</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d0d/_visualization_data_8h_source.html#l00069">VisualizationData.h:69</a></div></div>
<div class="ttc" id="class_robot_runner_html_a22049e420073df0f4f7c0df114b5e917"><div class="ttname"><a href="../../d9/d42/class_robot_runner.html#a22049e420073df0f4f7c0df114b5e917">RobotRunner::_robot_ctrl</a></div><div class="ttdeci">RobotController * _robot_ctrl</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d41/_robot_runner_8h_source.html#l00044">RobotRunner.h:44</a></div></div>
<div class="ttc" id="class_leg_controller_html_a0989efb2b62a34f7cef3f4cf29b6783f"><div class="ttname"><a href="../../d0/d96/class_leg_controller.html#a0989efb2b62a34f7cef3f4cf29b6783f">LegController::commands</a></div><div class="ttdeci">LegControllerCommand&lt; T &gt; commands[4]</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/d41/_leg_controller_8h_source.html#l00069">LegController.h:69</a></div></div>
</div><!-- fragment -->
<p><div id="dynsection-8" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-8-trigger" src="../../closed.png" alt="+"/> Here is the call graph for this function:</div>
<div id="dynsection-8-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-8-content" class="dyncontent" style="display:none;">
<div class="center"><img src="../../d9/d42/class_robot_runner_a00f9204f3367b9948a2053e66d92c844_cgraph.png" border="0" usemap="#d9/d42/class_robot_runner_a00f9204f3367b9948a2053e66d92c844_cgraph" alt=""/></div>
<map name="d9/d42/class_robot_runner_a00f9204f3367b9948a2053e66d92c844_cgraph" id="d9/d42/class_robot_runner_a00f9204f3367b9948a2053e66d92c844_cgraph">
</map>
</div>
</p>

<p><div id="dynsection-9" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-9-trigger" src="../../closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-9-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-9-content" class="dyncontent" style="display:none;">
<div class="center"><img src="../../d9/d42/class_robot_runner_a00f9204f3367b9948a2053e66d92c844_icgraph.png" border="0" usemap="#d9/d42/class_robot_runner_a00f9204f3367b9948a2053e66d92c844_icgraph" alt=""/></div>
<map name="d9/d42/class_robot_runner_a00f9204f3367b9948a2053e66d92c844_icgraph" id="d9/d42/class_robot_runner_a00f9204f3367b9948a2053e66d92c844_icgraph">
</map>
</div>
</p>

</div>
</div>
<a class="anchor" id="a350d9f78e20c990d39533024dce26759"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void RobotRunner::setupStep </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="../../db/d28/_robot_runner_8cpp_source.html#l00123">123</a> of file <a class="el" href="../../db/d28/_robot_runner_8cpp_source.html">RobotRunner.cpp</a>.</p>

<p>References <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00071">_cheaterModeEnabled</a>, <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00068">_legController</a>, <a class="el" href="../../d9/d8e/cpp_types_8h.html#a78d284d08fd22d809fd436256f2cbc39a6dd4d4322d59b92d9eaed24a8d3ecb45">CHEETAH_3</a>, <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00054">controlParameters</a>, <a class="el" href="../../db/d28/_robot_runner_8cpp_source.html#l00174">initializeStateEstimator()</a>, <a class="el" href="../../d9/d8e/cpp_types_8h.html#a78d284d08fd22d809fd436256f2cbc39a590425b506eb87eff1a64ed14ffd1498">MINI_CHEETAH</a>, <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00047">robotType</a>, <a class="el" href="../../d0/d41/_leg_controller_8h_source.html#l00061">LegController&lt; T &gt;::setEnabled()</a>, <a class="el" href="../../d0/d41/_leg_controller_8h_source.html#l00067">LegController&lt; T &gt;::setMaxTorqueCheetah3()</a>, <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00050">spiData</a>, <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00053">tiBoardData</a>, <a class="el" href="../../da/d2d/_leg_controller_8cpp_source.html#l00083">LegController&lt; T &gt;::updateData()</a>, and <a class="el" href="../../da/d2d/_leg_controller_8cpp_source.html#l00048">LegController&lt; T &gt;::zeroCommand()</a>.</p>
<div class="fragment"><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;                            {</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;  <span class="comment">// Update the leg data</span></div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;  <span class="keywordflow">if</span> (<a class="code" href="../../d9/d42/class_robot_runner.html#ac36f7f6395167f998afe23f6d4f86c82">robotType</a> == <a class="code" href="../../d9/d8e/cpp_types_8h.html#a78d284d08fd22d809fd436256f2cbc39a590425b506eb87eff1a64ed14ffd1498">RobotType::MINI_CHEETAH</a>) {</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;    <a class="code" href="../../d9/d42/class_robot_runner.html#a5df8c8d98558dbf844abfcdcb21e805a">_legController</a>-&gt;<a class="code" href="../../d0/d96/class_leg_controller.html#aec19eaa7a02abc15dba5106b82c5a8bc">updateData</a>(<a class="code" href="../../d9/d42/class_robot_runner.html#a58767b23c3b78f2d6f7a5af7474d39cf">spiData</a>);</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="../../d9/d42/class_robot_runner.html#ac36f7f6395167f998afe23f6d4f86c82">robotType</a> == <a class="code" href="../../d9/d8e/cpp_types_8h.html#a78d284d08fd22d809fd436256f2cbc39a6dd4d4322d59b92d9eaed24a8d3ecb45">RobotType::CHEETAH_3</a>) {</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;    <a class="code" href="../../d9/d42/class_robot_runner.html#a5df8c8d98558dbf844abfcdcb21e805a">_legController</a>-&gt;<a class="code" href="../../d0/d96/class_leg_controller.html#aec19eaa7a02abc15dba5106b82c5a8bc">updateData</a>(<a class="code" href="../../d9/d42/class_robot_runner.html#ac50170ed61462e6b473a8b4123252b06">tiBoardData</a>);</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    assert(<span class="keyword">false</span>);</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;  }</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;  <span class="comment">// Setup the leg controller for a new iteration</span></div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;  <a class="code" href="../../d9/d42/class_robot_runner.html#a5df8c8d98558dbf844abfcdcb21e805a">_legController</a>-&gt;<a class="code" href="../../d0/d96/class_leg_controller.html#a8fc971360d5ce54469d219c6aa4b51e4">zeroCommand</a>();</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;  <a class="code" href="../../d9/d42/class_robot_runner.html#a5df8c8d98558dbf844abfcdcb21e805a">_legController</a>-&gt;<a class="code" href="../../d0/d96/class_leg_controller.html#a47178c450659ac6793ac7a74351094e5">setEnabled</a>(<span class="keyword">true</span>);</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;  <a class="code" href="../../d9/d42/class_robot_runner.html#a5df8c8d98558dbf844abfcdcb21e805a">_legController</a>-&gt;<a class="code" href="../../d0/d96/class_leg_controller.html#a2ccb52cceb6b9ac1a6ef86c823d81fa1">setMaxTorqueCheetah3</a>(208.5);</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;  <span class="comment">// state estimator</span></div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;  <span class="comment">// check transition to cheater mode:</span></div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;  <span class="keywordflow">if</span> (!<a class="code" href="../../d9/d42/class_robot_runner.html#a110cef5dc9ec858247b859b37a86ae76">_cheaterModeEnabled</a> &amp;&amp; <a class="code" href="../../d9/d42/class_robot_runner.html#a1738f8f82abdedc10c25e0360fba2dec">controlParameters</a>-&gt;cheater_mode) {</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    printf(<span class="stringliteral">&quot;[RobotRunner] Transitioning to Cheater Mode...\n&quot;</span>);</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;    <a class="code" href="../../d9/d42/class_robot_runner.html#a2690089988868e09ee5827788bded47a">initializeStateEstimator</a>(<span class="keyword">true</span>);</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;    <span class="comment">// todo any configuration</span></div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;    <a class="code" href="../../d9/d42/class_robot_runner.html#a110cef5dc9ec858247b859b37a86ae76">_cheaterModeEnabled</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;  }</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;  <span class="comment">// check transition from cheater mode:</span></div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;  <span class="keywordflow">if</span> (<a class="code" href="../../d9/d42/class_robot_runner.html#a110cef5dc9ec858247b859b37a86ae76">_cheaterModeEnabled</a> &amp;&amp; !<a class="code" href="../../d9/d42/class_robot_runner.html#a1738f8f82abdedc10c25e0360fba2dec">controlParameters</a>-&gt;cheater_mode) {</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;    printf(<span class="stringliteral">&quot;[RobotRunner] Transitioning from Cheater Mode...\n&quot;</span>);</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;    <a class="code" href="../../d9/d42/class_robot_runner.html#a2690089988868e09ee5827788bded47a">initializeStateEstimator</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    <span class="comment">// todo any configuration</span></div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    <a class="code" href="../../d9/d42/class_robot_runner.html#a110cef5dc9ec858247b859b37a86ae76">_cheaterModeEnabled</a> = <span class="keyword">false</span>;</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;  }</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;  <span class="comment">// todo safety checks, sanity checks, etc...</span></div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;}</div><div class="ttc" id="cpp_types_8h_html_a78d284d08fd22d809fd436256f2cbc39a590425b506eb87eff1a64ed14ffd1498"><div class="ttname"><a href="../../d9/d8e/cpp_types_8h.html#a78d284d08fd22d809fd436256f2cbc39a590425b506eb87eff1a64ed14ffd1498">RobotType::MINI_CHEETAH</a></div></div>
<div class="ttc" id="class_robot_runner_html_ac50170ed61462e6b473a8b4123252b06"><div class="ttname"><a href="../../d9/d42/class_robot_runner.html#ac50170ed61462e6b473a8b4123252b06">RobotRunner::tiBoardData</a></div><div class="ttdeci">TiBoardData * tiBoardData</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d41/_robot_runner_8h_source.html#l00053">RobotRunner.h:53</a></div></div>
<div class="ttc" id="class_robot_runner_html_a58767b23c3b78f2d6f7a5af7474d39cf"><div class="ttname"><a href="../../d9/d42/class_robot_runner.html#a58767b23c3b78f2d6f7a5af7474d39cf">RobotRunner::spiData</a></div><div class="ttdeci">SpiData * spiData</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d41/_robot_runner_8h_source.html#l00050">RobotRunner.h:50</a></div></div>
<div class="ttc" id="class_robot_runner_html_a5df8c8d98558dbf844abfcdcb21e805a"><div class="ttname"><a href="../../d9/d42/class_robot_runner.html#a5df8c8d98558dbf844abfcdcb21e805a">RobotRunner::_legController</a></div><div class="ttdeci">LegController&lt; float &gt; * _legController</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d41/_robot_runner_8h_source.html#l00068">RobotRunner.h:68</a></div></div>
<div class="ttc" id="class_robot_runner_html_a2690089988868e09ee5827788bded47a"><div class="ttname"><a href="../../d9/d42/class_robot_runner.html#a2690089988868e09ee5827788bded47a">RobotRunner::initializeStateEstimator</a></div><div class="ttdeci">void initializeStateEstimator(bool cheaterMode=false)</div><div class="ttdef"><b>Definition:</b> <a href="../../db/d28/_robot_runner_8cpp_source.html#l00174">RobotRunner.cpp:174</a></div></div>
<div class="ttc" id="class_leg_controller_html_a2ccb52cceb6b9ac1a6ef86c823d81fa1"><div class="ttname"><a href="../../d0/d96/class_leg_controller.html#a2ccb52cceb6b9ac1a6ef86c823d81fa1">LegController::setMaxTorqueCheetah3</a></div><div class="ttdeci">void setMaxTorqueCheetah3(T tau)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/d41/_leg_controller_8h_source.html#l00067">LegController.h:67</a></div></div>
<div class="ttc" id="class_robot_runner_html_a110cef5dc9ec858247b859b37a86ae76"><div class="ttname"><a href="../../d9/d42/class_robot_runner.html#a110cef5dc9ec858247b859b37a86ae76">RobotRunner::_cheaterModeEnabled</a></div><div class="ttdeci">bool _cheaterModeEnabled</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d41/_robot_runner_8h_source.html#l00071">RobotRunner.h:71</a></div></div>
<div class="ttc" id="class_robot_runner_html_a1738f8f82abdedc10c25e0360fba2dec"><div class="ttname"><a href="../../d9/d42/class_robot_runner.html#a1738f8f82abdedc10c25e0360fba2dec">RobotRunner::controlParameters</a></div><div class="ttdeci">RobotControlParameters * controlParameters</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d41/_robot_runner_8h_source.html#l00054">RobotRunner.h:54</a></div></div>
<div class="ttc" id="class_leg_controller_html_a47178c450659ac6793ac7a74351094e5"><div class="ttname"><a href="../../d0/d96/class_leg_controller.html#a47178c450659ac6793ac7a74351094e5">LegController::setEnabled</a></div><div class="ttdeci">void setEnabled(bool enabled)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/d41/_leg_controller_8h_source.html#l00061">LegController.h:61</a></div></div>
<div class="ttc" id="class_leg_controller_html_aec19eaa7a02abc15dba5106b82c5a8bc"><div class="ttname"><a href="../../d0/d96/class_leg_controller.html#aec19eaa7a02abc15dba5106b82c5a8bc">LegController::updateData</a></div><div class="ttdeci">void updateData(const SpiData *spiData)</div><div class="ttdef"><b>Definition:</b> <a href="../../da/d2d/_leg_controller_8cpp_source.html#l00083">LegController.cpp:83</a></div></div>
<div class="ttc" id="cpp_types_8h_html_a78d284d08fd22d809fd436256f2cbc39a6dd4d4322d59b92d9eaed24a8d3ecb45"><div class="ttname"><a href="../../d9/d8e/cpp_types_8h.html#a78d284d08fd22d809fd436256f2cbc39a6dd4d4322d59b92d9eaed24a8d3ecb45">RobotType::CHEETAH_3</a></div></div>
<div class="ttc" id="class_leg_controller_html_a8fc971360d5ce54469d219c6aa4b51e4"><div class="ttname"><a href="../../d0/d96/class_leg_controller.html#a8fc971360d5ce54469d219c6aa4b51e4">LegController::zeroCommand</a></div><div class="ttdeci">void zeroCommand()</div><div class="ttdef"><b>Definition:</b> <a href="../../da/d2d/_leg_controller_8cpp_source.html#l00048">LegController.cpp:48</a></div></div>
<div class="ttc" id="class_robot_runner_html_ac36f7f6395167f998afe23f6d4f86c82"><div class="ttname"><a href="../../d9/d42/class_robot_runner.html#ac36f7f6395167f998afe23f6d4f86c82">RobotRunner::robotType</a></div><div class="ttdeci">RobotType robotType</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d41/_robot_runner_8h_source.html#l00047">RobotRunner.h:47</a></div></div>
</div><!-- fragment -->
<p><div id="dynsection-10" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-10-trigger" src="../../closed.png" alt="+"/> Here is the call graph for this function:</div>
<div id="dynsection-10-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-10-content" class="dyncontent" style="display:none;">
<div class="center"><img src="../../d9/d42/class_robot_runner_a350d9f78e20c990d39533024dce26759_cgraph.png" border="0" usemap="#d9/d42/class_robot_runner_a350d9f78e20c990d39533024dce26759_cgraph" alt=""/></div>
<map name="d9/d42/class_robot_runner_a350d9f78e20c990d39533024dce26759_cgraph" id="d9/d42/class_robot_runner_a350d9f78e20c990d39533024dce26759_cgraph">
</map>
</div>
</p>

<p><div id="dynsection-11" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-11-trigger" src="../../closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-11-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-11-content" class="dyncontent" style="display:none;">
<div class="center"><img src="../../d9/d42/class_robot_runner_a350d9f78e20c990d39533024dce26759_icgraph.png" border="0" usemap="#d9/d42/class_robot_runner_a350d9f78e20c990d39533024dce26759_icgraph" alt=""/></div>
<map name="d9/d42/class_robot_runner_a350d9f78e20c990d39533024dce26759_icgraph" id="d9/d42/class_robot_runner_a350d9f78e20c990d39533024dce26759_icgraph">
</map>
</div>
</p>

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="a110cef5dc9ec858247b859b37a86ae76"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool RobotRunner::_cheaterModeEnabled = false</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00071">71</a> of file <a class="el" href="../../d3/d41/_robot_runner_8h_source.html">RobotRunner.h</a>.</p>

</div>
</div>
<a class="anchor" id="a5c821324ab0aa3242530fe440cef8238"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../d0/d27/class_desired_state_command.html">DesiredStateCommand</a>&lt;float&gt;* RobotRunner::_desiredStateCommand</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00072">72</a> of file <a class="el" href="../../d3/d41/_robot_runner_8h_source.html">RobotRunner.h</a>.</p>

</div>
</div>
<a class="anchor" id="a9c110d02e7a2d84105d559bdcbfbbe77"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">float RobotRunner::_ini_yaw</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00059">59</a> of file <a class="el" href="../../d3/d41/_robot_runner_8h_source.html">RobotRunner.h</a>.</p>

</div>
</div>
<a class="anchor" id="aa5a05775ffd71056024d5a60c3bfe354"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../d0/d99/c_types_8h.html#a3f7e2bcbb0b4c338f3c4f6c937cd4234">u64</a> RobotRunner::_iterations = 0</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00080">80</a> of file <a class="el" href="../../d3/d41/_robot_runner_8h_source.html">RobotRunner.h</a>.</p>

</div>
</div>
<a class="anchor" id="a5e661baf2a4409d910c56852309e2eba"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../d6/d0e/class_j_pos_initializer.html">JPosInitializer</a>&lt;float&gt;* RobotRunner::_jpos_initializer</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00066">66</a> of file <a class="el" href="../../d3/d41/_robot_runner_8h_source.html">RobotRunner.h</a>.</p>

</div>
</div>
<a class="anchor" id="ac30dc70ec5c716af67b9e5ad1116170f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">lcm::LCM RobotRunner::_lcm</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00073">73</a> of file <a class="el" href="../../d3/d41/_robot_runner_8h_source.html">RobotRunner.h</a>.</p>

</div>
</div>
<a class="anchor" id="a5df8c8d98558dbf844abfcdcb21e805a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../d0/d96/class_leg_controller.html">LegController</a>&lt;float&gt;* RobotRunner::_legController = nullptr</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00068">68</a> of file <a class="el" href="../../d3/d41/_robot_runner_8h_source.html">RobotRunner.h</a>.</p>

</div>
</div>
<a class="anchor" id="a0ce5b08a77c9093398f0863c13cced0e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../d6/db1/class_floating_base_model.html">FloatingBaseModel</a>&lt;float&gt; RobotRunner::_model</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00079">79</a> of file <a class="el" href="../../d3/d41/_robot_runner_8h_source.html">RobotRunner.h</a>.</p>

</div>
</div>
<a class="anchor" id="a3fca77b8800f422df7b4479c1a9de256"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../dc/d66/class_quadruped.html">Quadruped</a>&lt;float&gt; RobotRunner::_quadruped</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00067">67</a> of file <a class="el" href="../../d3/d41/_robot_runner_8h_source.html">RobotRunner.h</a>.</p>

</div>
</div>
<a class="anchor" id="a22049e420073df0f4f7c0df114b5e917"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../d4/d6a/class_robot_controller.html">RobotController</a>* RobotRunner::_robot_ctrl</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00044">44</a> of file <a class="el" href="../../d3/d41/_robot_runner_8h_source.html">RobotRunner.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2740567fb438904e017aa1a8f29b2f15"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../dd/df3/struct_state_estimate.html">StateEstimate</a>&lt;float&gt; RobotRunner::_stateEstimate</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00069">69</a> of file <a class="el" href="../../d3/d41/_robot_runner_8h_source.html">RobotRunner.h</a>.</p>

</div>
</div>
<a class="anchor" id="a4cfc6ffa3d96d78ea95633d602896a37"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../d1/d3b/class_state_estimator_container.html">StateEstimatorContainer</a>&lt;float&gt;* RobotRunner::_stateEstimator</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00070">70</a> of file <a class="el" href="../../d3/d41/_robot_runner_8h_source.html">RobotRunner.h</a>.</p>

</div>
</div>
<a class="anchor" id="a0c0ed1f15b551e355dd724696830d9ce"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../d2/d3e/struct_cheater_state.html">CheaterState</a>&lt;double&gt;* RobotRunner::cheaterState</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00049">49</a> of file <a class="el" href="../../d3/d41/_robot_runner_8h_source.html">RobotRunner.h</a>.</p>

</div>
</div>
<a class="anchor" id="ad49f79affbf6c35d4c8ac21a50cb8ae3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../d0/d6d/struct_cheetah_visualization.html">CheetahVisualization</a>* RobotRunner::cheetahMainVisualization</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00056">56</a> of file <a class="el" href="../../d3/d41/_robot_runner_8h_source.html">RobotRunner.h</a>.</p>

</div>
</div>
<a class="anchor" id="a1738f8f82abdedc10c25e0360fba2dec"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../d0/d73/class_robot_control_parameters.html">RobotControlParameters</a>* RobotRunner::controlParameters</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00054">54</a> of file <a class="el" href="../../d3/d41/_robot_runner_8h_source.html">RobotRunner.h</a>.</p>

</div>
</div>
<a class="anchor" id="ab68a04d6b506333426883633a6430656"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../d4/d51/struct_gamepad_command.html">GamepadCommand</a>* RobotRunner::driverCommand</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00046">46</a> of file <a class="el" href="../../d3/d41/_robot_runner_8h_source.html">RobotRunner.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2afbec5f8ca8de22d917b7e3aea68a44"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int RobotRunner::iter = 0</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00061">61</a> of file <a class="el" href="../../d3/d41/_robot_runner_8h_source.html">RobotRunner.h</a>.</p>

</div>
</div>
<a class="anchor" id="a675c3dc67c255fc4869bacd785f8e31c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">leg_control_command_lcmt RobotRunner::leg_control_command_lcm</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00074">74</a> of file <a class="el" href="../../d3/d41/_robot_runner_8h_source.html">RobotRunner.h</a>.</p>

</div>
</div>
<a class="anchor" id="a1ced7e9e4a5690141839c1bf39e3b54a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">leg_control_data_lcmt RobotRunner::leg_control_data_lcm</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00076">76</a> of file <a class="el" href="../../d3/d41/_robot_runner_8h_source.html">RobotRunner.h</a>.</p>

</div>
</div>
<a class="anchor" id="ac36f7f6395167f998afe23f6d4f86c82"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../d9/d8e/cpp_types_8h.html#a78d284d08fd22d809fd436256f2cbc39">RobotType</a> RobotRunner::robotType</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00047">47</a> of file <a class="el" href="../../d3/d41/_robot_runner_8h_source.html">RobotRunner.h</a>.</p>

</div>
</div>
<a class="anchor" id="a13f4f83d3364befdad7a218f2c16afbb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../d0/ddd/struct_spi_command.html">SpiCommand</a>* RobotRunner::spiCommand</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00051">51</a> of file <a class="el" href="../../d3/d41/_robot_runner_8h_source.html">RobotRunner.h</a>.</p>

</div>
</div>
<a class="anchor" id="a58767b23c3b78f2d6f7a5af7474d39cf"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../d5/d09/struct_spi_data.html">SpiData</a>* RobotRunner::spiData</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00050">50</a> of file <a class="el" href="../../d3/d41/_robot_runner_8h_source.html">RobotRunner.h</a>.</p>

</div>
</div>
<a class="anchor" id="a02c2ec6b1bbcdba9bb71a52e1c7c1ff4"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">state_estimator_lcmt RobotRunner::state_estimator_lcm</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00075">75</a> of file <a class="el" href="../../d3/d41/_robot_runner_8h_source.html">RobotRunner.h</a>.</p>

</div>
</div>
<a class="anchor" id="a0f2ce3493eb24f284097c191bd46878b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../d8/d03/struct_ti_board_command.html">TiBoardCommand</a>* RobotRunner::tiBoardCommand</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00052">52</a> of file <a class="el" href="../../d3/d41/_robot_runner_8h_source.html">RobotRunner.h</a>.</p>

</div>
</div>
<a class="anchor" id="ac50170ed61462e6b473a8b4123252b06"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../de/de1/struct_ti_board_data.html">TiBoardData</a>* RobotRunner::tiBoardData</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00053">53</a> of file <a class="el" href="../../d3/d41/_robot_runner_8h_source.html">RobotRunner.h</a>.</p>

</div>
</div>
<a class="anchor" id="a556fa8680fbd044ace2e0ac66db6c0ff"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../df/d06/struct_vector_nav_data.html">VectorNavData</a>* RobotRunner::vectorNavData</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00048">48</a> of file <a class="el" href="../../d3/d41/_robot_runner_8h_source.html">RobotRunner.h</a>.</p>

</div>
</div>
<a class="anchor" id="a8c74848e52f20b1294d650641f40ea4f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../d3/d60/struct_visualization_data.html">VisualizationData</a>* RobotRunner::visualizationData</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="../../d3/d41/_robot_runner_8h_source.html#l00055">55</a> of file <a class="el" href="../../d3/d41/_robot_runner_8h_source.html">RobotRunner.h</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="../../d3/d41/_robot_runner_8h_source.html">RobotRunner.h</a></li>
<li><a class="el" href="../../db/d28/_robot_runner_8cpp_source.html">RobotRunner.cpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="../../d9/d42/class_robot_runner.html">RobotRunner</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="../../doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
  </ul>
</div>
</body>
</html>
